springMVC中关于拦截器的两种配置有什么不同

2024-12-01 08:22:56
推荐回答(3个)
回答1:

你指的是aop:config和mvc:interceptors的区别吗看

简单的讲他们的区别是:

aop:config是针对类方法的拦截,适用于所有的java类方法的拦截,包括javase。只需要在applicationContext.xml里设置就行了。
mvc:interceptors是针对web请求的拦截,与java.servlet.Filter很类似。通过设置需要拦截的url请求从而拦截请求方法。
其他方面两者都差不多。

回答2:

SpringMVC是如何配置拦截器的。
1. *-dispatcher.xml配置文件中添加 配置









这里配置的每个都会被解析成MappedInterceptor。
其中子标签会被解析成MappedInterceptor的includePatterns属性;会被解析成MappedInterceptor的excludePatterns属性;会被解析成MappedInterceptor的interceptor属性。
这个标签是被InterceptorsBeanDefinitionParser类解析。
如果使用注解:
那么配置如下:







两者的区别就是第一种采用的是xml注入,第二种是注解实现

回答3:

第一种配置方法:

class="cn.javass.chapter5.web.interceptor.HandlerInterceptor1"/>
class="cn.javass.chapter5.web.interceptor.HandlerInterceptor2"/>









第二种配置方法:







一般用第二种的原因是因为用了会自动注入BeanNameUrlHandlerMapping,而且官方也不推荐手动注入BeanNameUrlHandlerMapping这个方法