5

我从 Spring 3.0.5 迁移到 3.1,因为我需要自定义 RequestMappingHandlerMapping。我在扩展 RequestMappingHandlerMapping 的插件中遇到问题 - 我有现有的 servlet-conetxt.xml 并且我添加了带有 @Configuration 注释的 WebConfig。但是,我总是得到错误模糊映射(因为在 ExtendedRequestMappingHandlerMapping 中定义的新注释没有生效)。

我在 servlet-context.xml 中定义了各种级别的拦截器,我想将它们保留在 XML 配置中。我想用 .

有没有办法使用servlet-context.xml的结合,同时扩展RequestMappingHandlerMapping。如果必须使用 @CONfiguration 来完成 - 我可以同时使用 @CONfiguration 和 servlet-context.xml 吗?任何帮助将不胜感激,因为我已经尝试了很长时间。

<context-param>
    <param-name>contextClass</param-name>
    <param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
</context-param>

<context-param>
 <param-name>contextConfigLocation</param-name>
 <param-value>com.test.config</param-value>
</context-param>
4

2 回答 2

7

是的,您可以使用它: 示例:

@EnableWebMvc
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {

  @Override
  public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(new LocalInterceptor());
    registry.addInterceptor(new SecurityInterceptor()).addPathPatterns("/secure/*");
 }

}

只是参考

http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/mvc.html#mvc-config-interceptors 了解更多详情。

于 2012-05-01T05:21:14.023 回答
0

如果使用

@EnableWebMvc
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
  @Autowired
  Anything anything;

  @Override
  public void addInterceptors(InterceptorRegistry registry) {
     log.info(anything.toString());//this will exception,how to fix?
    registry.addInterceptor(new LocalInterceptor());
    registry.addInterceptor(new SecurityInterceptor()).addPathPatterns("/secure/*");
 }

}

@service 不能设置为拦截器

于 2013-07-11T02:22:19.787 回答