【Spring】14、SpringMVC拦截器的配置
2017-05-19 10:54
281 查看
拦截器:
com.zk.interceptors.MyInterceptor 实现了 HandlerInterceptor接口,可以拦截@RequestMapping注解的类和方法
第一种方式
拦截正常
第二种方法,拦截不到
DefaultAnnotationHandlerMapping类中说Defining a DefaultAnnotationHandlerMapping also allows for registering custom interceptors。
可以通过DefaultAnnotationHandlerMapping注册自定义拦截器。可是为什么拦截不到呢?
原来第二种方式在xml中注册的DefaultAnnotationHandlerMapping,没有真正覆盖掉DispatcherServlet注册的默认DefaultAnnotationHandlerMapping。
原因就在于我的xml中多了这一行
<mvc:annotation-driven />。 它默认已经注册了DefaultAnnotationHandlerMapping,AnnotationMethodHandlerAdapter 。
所以去掉它后,第二种方式,第一种方式都运行正常。
<mvc:annotation-driven />元素不建议使用。
因为
<!-- 包扫描,注册了各种处理器,<mvc:annotation-driven />也有可能重复注册好多处理器。只有我们都熟悉了,再使用完全自动化吧 -->
<context:component-scan base-package="com.zk"/>
------------注册多个注解器
或
执行顺序
perHandler()
perHandler2()
----------------Handler method()
postHandle2()
postHandle()
afterCompletion2()
afterCompletion()
后缀有2的为MyInterceptor2中的方法,没有的为MyInterceptor中的方法
com.zk.interceptors.MyInterceptor 实现了 HandlerInterceptor接口,可以拦截@RequestMapping注解的类和方法
第一种方式
<mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**"/> <bean class="com.zk.interceptors.MyInterceptor"></bean> </mvc:interceptor> </mvc:interceptors>
拦截正常
第二种方法,拦截不到
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> <property name="interceptors"> <list> <bean class="com.zk.interceptors.MyInterceptor"></bean> </list> </property> </bean>
DefaultAnnotationHandlerMapping类中说Defining a DefaultAnnotationHandlerMapping also allows for registering custom interceptors。
可以通过DefaultAnnotationHandlerMapping注册自定义拦截器。可是为什么拦截不到呢?
原来第二种方式在xml中注册的DefaultAnnotationHandlerMapping,没有真正覆盖掉DispatcherServlet注册的默认DefaultAnnotationHandlerMapping。
原因就在于我的xml中多了这一行
<mvc:annotation-driven />。 它默认已经注册了DefaultAnnotationHandlerMapping,AnnotationMethodHandlerAdapter 。
所以去掉它后,第二种方式,第一种方式都运行正常。
<mvc:annotation-driven />元素不建议使用。
因为
<!-- 包扫描,注册了各种处理器,<mvc:annotation-driven />也有可能重复注册好多处理器。只有我们都熟悉了,再使用完全自动化吧 -->
<context:component-scan base-package="com.zk"/>
------------注册多个注解器
<mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**"/> <bean class="com.zk.interceptors.MyInterceptor"/> </mvc:interceptor> <mvc:interceptor> <mvc:mapping path="/**"/> <bean class="com.zk.interceptors.MyInterceptor2"/> </mvc:interceptor> </mvc:interceptors>
或
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> <property name="interceptors"> <list> <bean class="com.zk.interceptors.MyInterceptor"></bean> <bean class="com.zk.interceptors.MyInterceptor2"></bean> </list> </property> </bean>
执行顺序
perHandler()
perHandler2()
----------------Handler method()
postHandle2()
postHandle()
afterCompletion2()
afterCompletion()
后缀有2的为MyInterceptor2中的方法,没有的为MyInterceptor中的方法
相关文章推荐
- springMVC 配置权限拦截器时,提示: '{"http://www.springframework.org/schema/mvc":mapping}
- SpringMVC配置拦截器出现500错误:Error creating bean with name 'org.springframework.web.servlet.handler.Mappe
- 从零开始搭建maven+springmvc+mybatis web项目(2)---springmvc配置文件编写
- 基于注解的Spring MVC整合Hibernate(所需jar包,spring和Hibernate整合配置,springMVC配置,重定向,批量删除)
- 19-spring学习-springMVC环境配置
- Spring配置文件和SpringMVC配置文件 web.xml配置文件 保存自用
- springmvc拦截器配置和路径问题
- SpringBoot系列(3)---无配置文件SpringMVC
- springboot 配置使用拦截器 interceptor
- Spring配置之springmvc-servlet.xml
- springMVC-笔记003-spring配置文件
- 详解SpringMVC拦截器配置及使用方法
- springMVC配置拦截器无效问题解决
- springMVC配置文件spring-servlet.xml中<mvc:annotation-driven />的意义
- springMVC 拦截器简单配置
- spring 拦截器 MethodInterceptor 配置 config aop以及session取数据
- spring拦截器 拦截springMVC的controller
- spring注解配置拦截器
- Spring 、SpringMVC、Mybatis、MySQL、Maven、Tomcat搭建JavaWeb项目流程---学习笔记(一)工具准备及环境配置
- 基于maven的SpringMVC,Spring,MyBatis的全注解配置