2013-07-27 25 views
25

Tôi muốn thêm trình xử lý tài nguyên. Trong diễn đàn họ sử dụng WebMvcConfigurationSupport: http://forum.springsource.org/showthread.php?116068-How-to-configure-lt-mvc-resources-gt-mapping-to-take-precedence-over-RequestMapping&p=384066#post384066Sự khác biệt giữa WebMvcConfigurationHỗ trợ và WebMvcConfigurerAdapter

và tài liệu nói WebMvcConfigurerAdapter: http://static.springsource.org/spring/docs/3.2.x/javadoc-api/org/springframework/web/servlet/config/annotation/EnableWebMvc.html

sự khác biệt là gì và cái nào sử dụng không? Cả hai đều có phương pháp addResourceHandlers tôi cần.

Đây là lớp học hiện tại của tôi:

@Configuration 
@EnableWebMvc 
public class WebMvcConfig extends WebMvcConfigurerAdapter { 
    public @Override void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry.addResourceHandler("/resources/**").addResourceLocations("/resources"); 
    } 

    public @Bean TilesViewResolver tilesViewResolver() { 
     return new TilesViewResolver(); 
    } 

    public @Bean TilesConfigurer tilesConfigurer() { 
     TilesConfigurer ret = new TilesConfigurer(); 
     ret.setDefinitions(new String[] { "classpath:tiles.xml" }); 
     return ret; 
    } 
} 

Trả lời

20

Câu trả lời là trong doc bạn tham chiếu ở trên:

Nếu tuỳ chọn tuỳ chỉnh của WebMvcConfigurer không phơi bày một cái gì đó bạn cần phải cấu hình, xem xét xóa chú thích @EnableWebMvc và mở rộng trực tiếp từ WebMvcConfigurationSupport ghi đè các phương thức @Bean đã chọn

Tóm lại, nếu @EnableWebMvc hoạt động cho bạn, bạn không cần phải tìm thêm bất kỳ chi tiết nào nữa.

+0

Bạn có thể vui lòng cung cấp liên kết đến điều này không? – DolphinJava

3

Tốt hơn là mở rộng WebMvcConfigurationSupport. Nó cung cấp tuỳ chọn tuỳ chỉnh hơn và cũng hoạt động tốt với

configureMessageConverters(List<HttpMessageConverter<?>> converters) 

vì bạn có thể thêm các convertors sử dụng

addDefaultHttpMessageConverters(converters); 

mà không có sẵn với WebMvcConfigurerAdapter.

Bấm [ở đây] How to configure MappingJacksonHttpMessageConverter while using spring annotation-based configuration?

Nếu bạn mở rộng WebMvcConfigurerAdapter, nó cư xử kỳ lạ với cấu hình Jackson và JAXB. Điều đó đã xảy ra với tôi !!!

+0

Có bạn đúng. Các vấn đề tương tự ở đây ... bởi vì các trình chuyển đổi phổ biến bị thiếu mà không cần gọi 'addDefaultHttpMessageConverters (converters);' – Pascal

2

nếu bạn sử dụng lớp ConfigurationSupport, hãy sẵn sàng chăm chỉ làm việc chăm chỉ khi cố gắng phân phát tài nguyên tĩnh, vì nó không hoạt động.

+0

Tôi thấy chính xác điều tương tự .. có cách giải quyết ở đây không? Việc thêm trình tạo tài nguyên dường như không có bất kỳ hiệu ứng nào, dường như chúng bị bỏ qua hoặc ít nhất đó là những gì tôi thấy .. –

+1

@MarkD sử dụng WebMvcConfigurerAdapter và nó sẽ hoạt động hoàn hảo – user1363516

+1

ya ngoại trừ tôi cần sử dụng một số tính năng không có trong đó - tức là ghi đè lên phương thức requestMappingHandlerMapping() mà dường như không có trong ConfigurerAdapter? –