💭

Re:ゼロから始めるSpring Boot #7 AutoConfigureの仕組み

に公開

Spring BootにおけるAutoConfigurationの仕組みのまとめ

  1. メインスタータークラスに@SpringBootApplicationアノテーションが付与されており、このアノテーションは@EnableAutoConfigurationアノテーションを内包しています。

  2. @EnableAutoConfiguration アノテーションはさらに@Import アノテーションを内包しており、AutoConfigurationImportSelectorクラスをインポートしています。

  3. AutoConfigurationImportSelector クラスはselectImports メソッドを実装していて、このメソッドが何段階にも呼び出されることで、最終的にMETA-INFディレクトリ下にある拡張子がimports のファイルを読み取ります。
    (ただし、Spring Boot 2.7以前のバージョンでは、spring.factoriesファイルを読み取っています)

  4. 最後に全クラス名(完全修飾名)を読み取った後、@Conditionalおよびその派生アノテーションに基づいて登録条件を解析し、登録条件を満たすBeanオブジェクトだけを自動的にIOCコンテナに注入します。

参考記事

https://qiita.com/kazuki43zoo/items/8645d9765edd11c6f1dd

Discussion