2013-07-27 7 views
25

リソースハンドラを追加したいと思います。フォーラムでは、彼らはWebMvcConfigurationSupport使用:http://forum.springsource.org/showthread.php?116068-How-to-configure-lt-mvc-resources-gt-mapping-to-take-precedence-over-RequestMapping&p=384066#post384066WebMvcConfigurationSupportとWebMvcConfigurerAdapterの相違点

をし、ドキュメントがWebMvcConfigurerAdapterを言う:http://static.springsource.org/spring/docs/3.2.x/javadoc-api/org/springframework/web/servlet/config/annotation/EnableWebMvc.html

違いは何だとどちらを使用しますか?どちらも私が必要とする方法はaddResourceHandlersです。

これは私の現在のクラスです:

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

答えて

20

答えはあなたが上記の参照ドキュメントにあります。

WebMvcConfigurerのカスタマイズオプションを使用すると、設定する必要が 何かを公開していない場合は、考えます@EnableWebMvcアノテーションを削除し、WebMvcConfigurationSupportから直接拡張する 選択した@Beanメソッドをオーバーライドします

つまり、@EnableWebMvcが機能する場合、これ以上見る必要はありません。

+0

あなたはこれへのリンクを提供してください。 – DolphinJava

3

WebMvcConfigurationSupportの方が優れています。これは、より多くのカスタマイズオプションを提供し、あなたがWebMvcConfigurerAdapterでは使用できません

addDefaultHttpMessageConverters(converters); 

を使用して、これらの変換器を追加することができます原因も は

configureMessageConverters(List<HttpMessageConverter<?>> converters) 

で正常に動作します。あなたがWebMvcConfigurerAdapterを拡張する場合は[こちら] How to configure MappingJacksonHttpMessageConverter while using spring annotation-based configuration?

をクリックして、それがジャクソンとJAXBを設定すると、妙に動作します。 それは私と一緒に起こった!

+0

はい、あなたは正しいです。同じ問題が...ここでは、共通のコンバーターが 'addDefaultHttpMessageConverters(converter);を呼び出さずに見つからないためです。 – Pascal

2

ConfigurationSupportクラスを使用している場合、静的リソースを処理しようとすると、準備が整いません。

+0

私はまったく同じものを見ています。ここに回避策がありますか?リソースハンドラを追加することは効果がないように見えますが、無視されるようです。または少なくとも私が見ているのはそれです。 –

+1

@MarkDはWebMvcConfigurerAdapterを使用していますが、完璧に機能します – user1363516

+1

つまり、ConfigurerAdapterにないと思われるrequestMappingHandlerMapping()メソッドをオーバーライドしますか? –

関連する問題