💭
Re:ゼロから始めるSpring Boot #7 AutoConfigureの仕組み
Spring BootにおけるAutoConfigurationの仕組みのまとめ
-
メインスタータークラスに
@SpringBootApplication
アノテーションが付与されており、このアノテーションは@EnableAutoConfiguration
アノテーションを内包しています。 -
@EnableAutoConfiguration
アノテーションはさらに@Import
アノテーションを内包しており、AutoConfigurationImportSelector
クラスをインポートしています。 -
AutoConfigurationImportSelector
クラスはselectImports
メソッドを実装していて、このメソッドが何段階にも呼び出されることで、最終的にMETA-INF
ディレクトリ下にある拡張子がimports
のファイルを読み取ります。
(ただし、Spring Boot 2.7以前のバージョンでは、spring.factories
ファイルを読み取っています) -
最後に全クラス名(完全修飾名)を読み取った後、
@Conditional
およびその派生アノテーションに基づいて登録条件を解析し、登録条件を満たすBeanオブジェクトだけを自動的にIOCコンテナに注入します。
参考記事
Discussion