SpringBoot が WebMvcConfigurationSupport を継承した後、springMVC の自動構成が失敗する

現象

自分で設定クラスを書き、WebMvcConfigurationSupportを継承して独自の業務コードを実装したところ、プロジェクト実行後に突然springMVCの自動設定が無効であることに気づきました。
ここに画像の説明を挿入

理由

ここに画像の説明を挿入
上記の SpringBoot の公式ドキュメントの翻訳によると、 Spring Boot MVC の元の構成 (自動構成) を保持し、独自の構成を追加したい場合は、 @Configuration とマークされたクラスに @EnableWebMvc アノテーションを追加する必要があります。

@EnableWebMvc
アノテーションの機能は、インポート - DelegatingWebMvcConfiguration を通じて @Configuration アノテーションが付けられたクラスを導入することです。その後、DelegatingWebMvcConfiguration クラスは WebMvcConfigurationSupport クラスを継承します。
最後に、WebMvcAutoConfiguration クラスで次のことがわかりました。 @ConditionalOnMissingBean(WebMvcConfigurationSupport.class) このアノテーションは、WebMvcConfigurationSupport クラスがない場合、WebMvcAutoConfiguration (つまり、SpringMvc の自動構成クラス) が有効になることを意味します。

要約する

独自の構成クラスを作成し、WebMvcConfigurationSupport から継承する場合は、@EnableWebMvc を使用してその自動構成を無効にする必要があります。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_28545605/article/details/126874651