我正在尝试将Spring项目从XML转换为Java配置,并使用HandlerInterceptors遇到以下问题:
XML配置(工作):
<mvc:annotation-driven />
<mvc:interceptors>
<bean class="com.mycompany.MyHandlerInterceptor" />
</mvc:interceptors>
Run Code Online (Sandbox Code Playgroud)
Java Config(从不调用拦截器)
@Configuration
public class MvcConfig extends WebMvcConfigurationSupport {
@Override
protected void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new MyHandlerInterceptor());
}
// ...
}
Run Code Online (Sandbox Code Playgroud)
根据文档,这两个配置应该是等效的,但是在Java配置示例中,是否都没有调用前置或后置句柄方法?
我错过了什么?
谢谢.
这是我自己的错.我已经requestMappingHandlerMapping()在我的MVC Java配置中覆盖了并且没有在自定义HandlerMapping类上设置拦截器属性.
@Bean
@Override
public RequestMappingHandlerMapping requestMappingHandlerMapping() {
CustomRequestHandlerMapping handlerMapping = new CustomRequestHandlerMapping();
handlerMapping.setOrder(0);
handlerMapping.setInterceptors(getInterceptors()); // <-- This was missing
return handlerMapping;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4946 次 |
| 最近记录: |