現象
自分で設定クラスを書き、WebMvcConfigurationSupportを継承して独自の業務コードを実装したところ、プロジェクト実行後に突然springMVCの自動設定が無効であることに気づきました。
理由
上記の SpringBoot の公式ドキュメントの翻訳によると、 Spring Boot MVC の元の構成 (自動構成) を保持し、独自の構成を追加したい場合は、 @Configuration とマークされたクラスに @EnableWebMvc アノテーションを追加する必要があります。
@EnableWebMvc
アノテーションの機能は、インポート - DelegatingWebMvcConfiguration を通じて @Configuration アノテーションが付けられたクラスを導入することです。その後、DelegatingWebMvcConfiguration クラスは WebMvcConfigurationSupport クラスを継承します。
最後に、WebMvcAutoConfiguration クラスで次のことがわかりました。 @ConditionalOnMissingBean(WebMvcConfigurationSupport.class) このアノテーションは、WebMvcConfigurationSupport クラスがない場合、WebMvcAutoConfiguration (つまり、SpringMvc の自動構成クラス) が有効になることを意味します。
要約する
独自の構成クラスを作成し、WebMvcConfigurationSupport から継承する場合は、@EnableWebMvc を使用してその自動構成を無効にする必要があります。