Spring Boot 6 DIコンテナ
前回の続きです。
DIですが、Autowiredで注入できる範囲についてです。
Autowiredで注入されるものはSpringBootのDIコンテナが管理しています。 注入されるクラスですが、以下の2つのルールで判定されています。
- @ComponentScanが付いたクラスが属するパッケージとその配下の
- @Componentが付いたクラス
@ComponentScanですが、@SpringBootApplicationが包含しています。
このため、Applicationクラスが属するパッケージとその配下に対しては以下の@Componentが付いていれば自動でDIコンテナに格納されています。
@Componentですが、色々なアノテーションが包含しています。
@Serviceや@Controller(@RestControllerは@Controllerを包含しているので@RestControllerも)等です。
STSなら、参照することができるので確認も可能です。