説明:
あなたが独自のJavaプロファイルを定義した場合、および春のブートファイルでノートの@EnableWebMvc、デフォルトの設定の小枝のブートは失敗します。こうしたデフォルトのコンフィギュレーション・パスなどの静的ファイル: "クラスパス:/ META-INF /リソース/"、 "クラスパス:/リソース/"、 "クラスパス:/静的/"、 "クラスパス:/公共/"、失敗します。そして、効果的な構成では、唯一、独自のJava設定を書き込みます。
原則に:
1.そこで彼は、ソースコード解析を追跡、デフォルトの設定を無効にする必要がなかったか、すべての最初は@EnableWebMvcこのコメントを見て:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE) @Documented @import(DelegatingWebMvcConfiguration。クラス)// 导入DelegatingWebMvcConfiguration类 パブリック @のインタフェースEnableWebMvc { }
2. [インポートDelegatingWebMvcConfigurationのクラスのノート、およびDelegatingWebMvcConfigurationクラスがWebMvcConfigurationSupportを継承
@Configuration パブリック クラス DelegatingWebMvcConfigurationは拡張WebMvcConfigurationSupport { ... //を省略 }
springMvc自動設定クラスで3見て:
@Configuration @ConditionalOnWebApplication @ConditionalOnClass({サーブレット。クラス、のDispatcherServlet。クラス、 WebMvcConfigurerAdapter。クラス}) @ConditionalOnMissingBean(WebMvcConfigurationSupport。クラス) @AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE + 10 ) @AutoConfigureAfter(DispatcherServletAutoConfiguration。クラス) パブリック クラスWebMvcAutoConfiguration { .. 。 / 省略 }
マーキングコードの黄色部分ではない参照しないコンテナが存在しない場合、この条件の注釈は、注釈指示である WebMvcConfigurationSupportは、このクラスは、 あろうWebMvcAutoConfiguration構成クラス
春ロードされました。そして、私たちは、このクラスは、春のコンテナにロードされWebMvcAutoConfiguration入れ@EnableWebMvc注釈を使用します。だから、WebMvcAutoConfigurationのデフォルトの設定クラスは失敗します。