拦截器,本质类似于AOP,主要的应用场景:
拦截器有两种实现方式:
1. 实现拦截器处理器接口:org.springframework.web.servlet.HandlerInterceptor
2. 继承拦截器适配器类:org.springframework.web.servlet.handler.HandlerInterceptorAdapter
实现拦截器需要重写三个接口,拦截器适配器为这三个方法做了空实现,可以继承这个类,根据需要重写拦截器的1~3个方法。
区别:
拦截器适配器为拦截器接口的三个方法做了空实现,可以根据需要复写这1~3个方法。
拦截器适配器实现了AsyncHandlerInterceptor接口,提供afterConcurrentHandlingStarted()函数,用于处理Controller的异步请求
项目配置:
<!-- 拦截器定义 --> <bean id="logInterceptor" class="com.wang.interceptor.LogInterceptor"/> <bean id="performanceInterceptor" class="com.wang.interceptor.PerformanceInterceptor"/> <bean id="testInterceptorAdapter" class="com.wang.interceptor.TestInterceptorAdapter"/> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"> <!-- 拦截器配置,顺序执行 --> <property name="interceptors"> <list> <ref bean="logInterceptor"/> <ref bean="performanceInterceptor"/> <ref bean="testInterceptorAdapter"/> </list> </property> </bean>
原文:https://www.cnblogs.com/myitnews/p/11568856.html