2013-07-27 7 views
25

Ich möchte Ressourcenhandler hinzufügen. Im Forum nutzen sie WebMvcConfigurationSupport: http://forum.springsource.org/showthread.php?116068-How-to-configure-lt-mvc-resources-gt-mapping-to-take-precedence-over-RequestMapping&p=384066#post384066Unterschied zwischen WebMvcConfigurationSupport und WebMvcConfigurerAdapter

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

Was ist der Unterschied und die man zu verwenden? Beide haben die addResourceHandlers Methode, die ich brauche.

Dies ist meine aktuelle Klasse:

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

Antwort

20

Die Antwort im doc wird Ihnen oben Bezug genommen wurde:

Wenn die Anpassungsmöglichkeiten von WebMvcConfigurer Bestrahlung etwas, das Sie konfigurieren müssen, sollten Sie Entfernen der @EnableWebMvc Annotation und direkte Erweiterung von WebMvcConfigurationSupport überschreiben ausgewählten @Bean Methoden

Kurz gesagt, wenn @EnableWebMvc für Sie arbeitet, brauchen Sie nicht weiter zu suchen.

+0

Können Sie bitte einen Link dazu angeben? – DolphinJava

3

Es ist besser, WebMvcConfigurationSupport zu erweitern. Es bietet mehr Anpassungsmöglichkeiten und arbeitet auch fein mit

configureMessageConverters(List<HttpMessageConverter<?>> converters) 

führen, dass Sie diese Konvertern

addDefaultHttpMessageConverters(converters); 

mit hinzufügen können, die nicht mit WebMvcConfigurerAdapter ist.

Klicken Sie [hier] How to configure MappingJacksonHttpMessageConverter while using spring annotation-based configuration?

Wenn Sie WebMvcConfigurerAdapter erweitern, verhält es sich seltsam mit Jackson und jaxb konfigurieren. Das ist bei mir passiert !!!

+0

Ja, Sie haben Recht. Die gleichen Probleme hier ... weil alle gebräuchlichen Konverter fehlen, ohne 'addDefaultHttpMessageConverter (Konverter) aufzurufen;' – Pascal

2

Wenn Sie die ConfigurationSupport-Klasse verwenden, machen Sie sich bereit, die Hardware zu betäuben, wenn Sie versuchen, statische Ressourcen bereitzustellen, weil sie nicht funktioniert.

+0

Ich sehe genau das Gleiche ... gibt es hier einen Workaround? Hinzufügen von Ressourcenhandlern scheint keine Wirkung zu haben, sie scheinen ignoriert zu werden, oder zumindest sehe ich das. –

+1

@MarkD benutze WebMvcConfiguratorAdapter und es wird einwandfrei funktionieren – user1363516

+1

ya außer ich muss einige Funktionen nicht darin verwenden - dh überschreiben Sie die Methode requestMappingHandlerMapping(), die nicht im KonfiguratorAdapter zu sein scheint? –