2012-04-30 17 views
5

Tôi đang di chuyển từ Spring 3.0.5 đến 3.1 vì tôi cần có RequestMappingHandlerMapping tùy chỉnh. Tôi đang đối mặt với các vấn đề trong plug-in của RequestMappingHandlerMapping mở rộng - tôi đã có servlet-conetxt.xml và tôi đã thêm WebConfig với chú thích @Configuration. Nhưng, tôi luôn nhận được ánh xạ ambiguos lỗi (vì chú thích mới được định nghĩa trong ExtendedRequestMappingHandlerMapping không có hiệu lực).Vào mùa xuân 3.1 có thể <mvc: interceptors> được sử dụng kết hợp với @Configuration

Tôi có các mức chặn khác nhau được định nghĩa trong servlet-context.xml mà tôi muốn giữ trong cấu hình XML. Tôi muốn sử dụng .

Có cách nào để sử dụng kết hợp của servlet-context.xml và đồng thời mở rộng RequestMappingHandlerMapping. Nếu điều này phải được thực hiện bằng cách sử dụng @COnfiguration - tôi có thể sử dụng cả @COnfiguration và servlet-context.xml không? Bất kỳ trợ giúp nào cũng sẽ được đánh giá cao vì tôi đã thử điều này từ lâu rồi.

<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> 

Trả lời

7

Vâng, bạn có thể sử dụng nó: Ví dụ:

@EnableWebMvc 
@Configuration 
public class WebConfig extends WebMvcConfigurerAdapter { 

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

} 

chỉ cần tham khảo

http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/mvc.html#mvc-config-interceptors để biết thêm chi tiết.

+1

Cảm ơn Danny. Tôi đã có thể sử dụng @ImportResource để làm việc này. –

0

nếu sử dụng

@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/*"); 
} 

} 

các @service không thể được thiết lập để Interceptor

Các vấn đề liên quan