thr*_*eez 8 spring spring-mvc interceptor
我有一个实现两个拦截器的Spring 3 Web App.我使用注释@Configuration的配置类.代码如下:
@Override
public void addInterceptors(InterceptorRegistry registry) {
// TODO Auto-generated method stub
super.addInterceptors(registry);
registry.addInterceptor(homeInterceptor()).addPathPatterns("/");
registry.addInterceptor(allInterceptor());
}
Run Code Online (Sandbox Code Playgroud)
无论我将拦截器添加到注册表的顺序是什么,allInterceptor的preHandle函数总是在homeInterceptor的preHandle之前调用.有谁知道如何控制拦截器被调用的顺序?
谢谢!
我查看了底层实现,全局拦截器(与任何路径映射无关)在映射的拦截器之前执行(具有相关的路径模式).因此,如果您希望在homeInterceptor
之前执行allInterceptor
,则allInterceptor
可能必须使其成为映射拦截器(通过提供路径模式).
这两个方法记录拦截器并在运行时查找拦截器:
org.springframework.web.servlet.handler.AbstractHandlerMapping.initInterceptors()
org.springframework.web.servlet.handler.AbstractHandlerMapping.getHandlerExecutionChain(Object, HttpServletRequest)
归档时间: |
|
查看次数: |
10413 次 |
最近记录: |