2013-07-27 31 views
25

Chciałbym dodać procedury obsługi zasobów. Na forum używają WebMvcConfigurationSupport: http://forum.springsource.org/showthread.php?116068-How-to-configure-lt-mvc-resources-gt-mapping-to-take-precedence-over-RequestMapping&p=384066#post384066Różnica między WebMvcConfigurationSupport a WebMvcConfigurerAdapter

i docs powiedzieć WebMvcConfigurerAdapter: http://static.springsource.org/spring/docs/3.2.x/javadoc-api/org/springframework/web/servlet/config/annotation/EnableWebMvc.html

Jaka jest różnica i który z nich korzystać? Oba mają potrzebną metodę addResourceHandlers.

To moja obecna klasa:

@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; 
    } 
} 

Odpowiedz

20

Odpowiedź jest w dok ty mowa powyżej:

Jeśli opcje dostosowywania WebMvcConfigurer nie wystawiać coś trzeba skonfigurować, należy rozważyć usuwanie adnotacji @EnableWebMvc i rozszerzanie bezpośrednio z WebMvcConfigurationSupport nadpisywanie wybranych metod @Bean

Krótko mówiąc, jeśli @EnableWebMvc pracuje dla Ciebie, nie musisz już szukać dalej.

+0

Czy możesz podać link do tego? – DolphinJava

3

Lepiej przedłużyć WebMvcConfigurationSupport. Zapewnia więcej opcji personalizacji, a także współpracuje z

configureMessageConverters(List<HttpMessageConverter<?>> converters) 

przyczyną można dodać tych przetworników za pomocą

addDefaultHttpMessageConverters(converters); 

który nie jest dostępny z WebMvcConfigurerAdapter.

Kliknij [tutaj] How to configure MappingJacksonHttpMessageConverter while using spring annotation-based configuration?

Jeśli przedłużyć WebMvcConfigurerAdapter, zachowuje się dziwnie przy konfigurowaniu Jackson i JAXB. To stało się ze mną !!!

+0

Tak, masz rację. Te same problemy tutaj ... ponieważ brakuje typowych konwerterów bez wywoływania 'addDefaultHttpMessageConverters (konwerterów);' – Pascal

2

Jeśli używasz klasy ConfigurationSupport, przygotuj się na drętwienie, gdy próbujesz obsługiwać zasoby statyczne, ponieważ to nie działa.

+0

Widzę dokładnie to samo ... czy istnieje tutaj obejście problemu? Dodanie obsługi zasobów nie wydaje się mieć żadnego efektu, wydaje się, że są ignorowane, a przynajmniej to widzę .. –

+1

@MarkD użyj WebMvcConfigurerAdapter i będzie działać bezbłędnie – user1363516

+1

ya, z wyjątkiem tego, że potrzebuję użyć niektórych funkcji, które nie są w nim zawarte - tj. przesłonić metodę requestMappingHandlerMapping(), która nie znajduje się w pliku ConfigurerAdapter? –