Spring过滤器、拦截器、controller以及controller注解执行顺序

本文详细探讨了Spring中过滤器、拦截器、控制器以及控制器注解的执行顺序。从web.xml配置的过滤器开始,经过spring-servlet.xml中配置的拦截器,再到Controller层的注解,通过order属性控制执行优先级。实验结果显示,执行顺序为:过滤器 -> 拦截器1 preHandle -> 拦截器2 preHandle -> 自定义注解1 Around(proceed之前) -> 自定义注解1 Before -> 自定义注解2 Around(proceed之前) -> 自定义注解2 Before -> 控制器方法 -> 自定义注解2 Around(proceed之后) -> 自定义注解2 After -> 自定义注解1 Around(proceed之后) -> 自定义注解1 After -> 拦截器2 postHandle -> 拦截器1 postHandle -> 拦截器2 afterCompletion -> 拦截器1 afterCompletion。
摘要由CSDN通过智能技术生成

Spring过滤器、拦截器、controller以及controller注解的代码

1、过滤器web.xml里面配置:过滤器和spring没关系

<!-- filter 拦截请求-->
<filter>
   <filter-name>FilterProxy</filter-name>
   <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
   <init-param>
      <param-name>targetBeanName</param-name>
      <param-value>dogFilter</param-value>
   </init-param>
   <init-param>
      <param-name>targetFilterLifecycle</param-name>
      <param-value>true</param-value>
   </init-param>
</filter>

<!-- 拦截请求 -->
<filter-mapping>
   <filter-name>FilterProxy</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

实现类:

 

2、拦截器spring-servlet.xml   有先后顺序

<!--拦截器-->
<mvc:interceptors>
       <mvc:interceptor>
     <mvc:mapping path="/**"/>
         <bean id="loginInterceptor" class="dog.interceptor.LoginInterceptor"></bean>
    </mvc:interceptor>
   <mvc:interceptor>
      <mvc:mapping path="/**"/>
      <bean id="confirmInterceptor" class="dog.interceptor.ConfirmInterceptor"></bean>
   </mvc:interceptor>
</mvc:interceptors>

3、controller层的注解 通过注解的order来指定优先级,order越低优先执行。如下图,定义两个注解:CxxSecLog和cxxlog

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值