💭
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