2013-07-27 14 views
25

Vorrei aggiungere gestori di risorse. Nel forum che usano WebMvcConfigurationSupport: http://forum.springsource.org/showthread.php?116068-How-to-configure-lt-mvc-resources-gt-mapping-to-take-precedence-over-RequestMapping&p=384066#post384066Differenza tra WebMvcConfigurationSupport e WebMvcConfigurerAdapter

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

Qual è la differenza e quale usare? Entrambi hanno il metodo addResourceHandlers che mi serve.

Questa è la mia classe corrente:

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

risposta

20

La risposta è nel documento che fa riferimento sopra:

Se le opzioni di personalizzazione del WebMvcConfigurer non espongono qualcosa è necessario configurare, in considerazione rimozione dell'annotazione @EnableWebMvc ed estensione direttamente da WebMvcConfigurationSupport sovrascrittura dei metodi selezionati @Bean

In breve, se @EnableWebMvc funziona per te, non c'è bisogno di cercare oltre.

+0

Potete fornire un collegamento a questo? – DolphinJava

3

È meglio estendere WebMvcConfigurationSupport. Esso fornisce più opzioni di personalizzazione e anche funziona bene con

configureMessageConverters(List<HttpMessageConverter<?>> converters) 

causa si può aggiungere questi convertitori utilizzando

addDefaultHttpMessageConverters(converters); 

che non è disponibile con WebMvcConfigurerAdapter.

Fare clic su [qui] How to configure MappingJacksonHttpMessageConverter while using spring annotation-based configuration?

Se si estende WebMvcConfigurerAdapter, si comporta stranamente con la configurazione di Jackson e JAXB. Questo è successo con me !!!

+0

Sì, hai ragione. Stessi problemi qui ... perché mancano i convertitori comuni senza chiamare 'addDefaultHttpMessageConverters (converters);' – Pascal

2

se si utilizza la classe ConfigurationSupport, è necessario essere pronti ad intorpidire hardwork quando si tenta di fornire risorse statiche, perché non funziona.

+0

Sto vedendo la stessa identica cosa ... c'è una soluzione qui? L'aggiunta di gestori di risorse non sembra avere alcun effetto, sembrano essere ignorati, o almeno è quello che sto vedendo .. –

+1

@MarkD usa WebMvcConfigurerAdapter e funzionerà perfettamente – user1363516

+1

ya tranne che ho bisogno di usare alcune funzionalità non in esso - Vale a dire sostituire il metodo requestMappingHandlerMapping() che non sembra essere in ConfigurerAdapter? –