springMVC中关于拦截器的两种配置有什么不同
发布网友
发布时间:2022-04-25 00:02
我来回答
共3个回答
热心网友
时间:2022-04-23 05:42
你指的是aop:config和mvc:interceptors的区别吗看
简单的讲他们的区别是:
aop:config是针对类方法的拦截,适用于所有的java类方法的拦截,包括javase。只需要在applicationContext.xml里设置就行了。
mvc:interceptors是针对web请求的拦截,与java.servlet.Filter很类似。通过设置需要拦截的url请求从而拦截请求方法。
其他方面两者都差不多。
热心网友
时间:2022-04-23 07:00
SpringMVC是如何配置*的。
1. *-dispatcher.xml配置文件中添加 <mvc:interceptors>配置
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<mvc:exclude-mapping path="/login"/>
<mvc:exclude-mapping path="/index"/>
<bean class="package.interceptor.XXInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
这里配置的每个<mvc:interceptor>都会被解析成MappedInterceptor。
其中子标签<mvc:mapping path="/**"/>会被解析成MappedInterceptor的includePatterns属性;<mvc:exclude-mapping path="/**"/>会被解析成MappedInterceptor的excludePatterns属性;<bean/>会被解析成MappedInterceptor的interceptor属性。
<mvc:interceptors>这个标签是被InterceptorsBeanDefinitionParser类解析。
如果使用注解:<mvc:annotation-driven/>
那么配置如下:
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
<property name="interceptors">
<bean class="package.interceptor.XXInterceptor"/>
</property>
<property name="order" value="-1"/>
</bean>
两者的区别就是第一种采用的是xml注入,第二种是注解实现
热心网友
时间:2022-04-23 08:34
第一种配置方法:
<bean id="handlerInterceptor1"
class="cn.javass.chapter5.web.interceptor.HandlerInterceptor1"/>
<bean id="handlerInterceptor2"
class="cn.javass.chapter5.web.interceptor.HandlerInterceptor2"/>
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
<property name="interceptors">
<list>
<ref bean="handlerInterceptor1"/>
<ref bean="handlerInterceptor2"/>
</list>
</property>
</bean>
第二种配置方法:
<mvc:interceptor>
<mvc:mapping path="/manage/**"/>
<mvc:exclude-mapping path="/manage/goLogin.*"/>
<mvc:exclude-mapping path="/manage/login.*"/>
<mvc:exclude-mapping path="/manage/logout.*"/>
<bean class="com.xx.ManageInterceptor"/>
</mvc:interceptor>
一般用第二种的原因是因为用了<mvc:annotation-driven>,<mvc:annotation-driven>会自动注入BeanNameUrlHandlerMapping,而且官方也不推荐手动注入BeanNameUrlHandlerMapping这个方法