2016-11-08 3 views
1

XMLベースのコンフィグレーションから@EnableWebMvcとWebMvcConfigurerAdapterへの移行を開始しました。しかし、設定を変更すると、DefaultAnnotationHandlerMappingからRequestMappingHandlerAdapterに切り替わったようです。DefaultAnnotationHandlerMappingを使用したSpring @EnableWebMvcコンフィグレーション

私はDefaultAnnotationHandlerMappingに戻したいのですが、どうすればそれを実際に設定できますか?

(私はDefaultAnnotationHandlerMappingが廃止されていることを知っているが、私はまだそれを使用する方法Iセットアップ春知りたい)

+0

オリジナルのXML設定は何でしたか? –

答えて

0

javadoc of @EnableWebMvc状態

@Configurationクラスの輸入春 MVCにこの注釈を追加しますWebMvcConfigurationSupportから設定[...]

WebMvcConfigurationSupport

このクラスは次のHandlerMappingsを登録:

注釈付きコントローラメソッドへのマッピング要求を0に順序付け
  • RequestMappingHandlerMapping
  • HandlerMappingは、URLパスを直接ビュー名にマップするために1で注文されます。
  • BeanNameUrlHandlerMapping 2から順番に、コントローラのBean名へのURLパスをマップします。
  • HandlerMappingInteger.MAX_VALUE-1で注文して静的リソース要求を処理します。
  • HandlerMappingInteger.MAX_VALUEで注文して、デフォルトのサーブレットに要求を転送します。

これはRequestMappingHandlerMappingの由来です。この「デフォルト」構成は、XML構成で

<mvc:annotation-driven /> 

を指定することとほぼ同じです。

RequestMappingHandlerMappingの先にDefaultAnnotationHandlerMappingを宣言したい場合は、独自のBeanを宣言してその順序を低く設定します。

@Bean 
public DefaultAnnotationHandlerMapping defaultAnnotationHandlerMapping() { 
    DefaultAnnotationHandlerMapping defaultAnnotationHandlerMapping = new DefaultAnnotationHandlerMapping(); 
    defaultAnnotationHandlerMapping.setOrder(-1); 
    // and other properties 
    return defaultAnnotationHandlerMapping; 
} 

あなたは、これがDispatcherServletに登録のみHandlerMappingになりたい場合は、豆"handlerMapping"に名前を付けてfalseDispatcherServlet#detectAllHandlerMappingsプロパティを設定します。

関連する問題