暇な日々にスパイスを

学んだ技術の備忘録

Spring Boot 6 DIコンテナ

前回の続きです。

DIですが、Autowiredで注入できる範囲についてです。

Autowiredで注入されるものはSpringBootのDIコンテナが管理しています。 注入されるクラスですが、以下の2つのルールで判定されています。

  1. @ComponentScanが付いたクラスが属するパッケージとその配下の
  2. @Componentが付いたクラス

@ComponentScanですが、@SpringBootApplicationが包含しています。
f:id:snona:20160217011110p:plain
このため、Applicationクラスが属するパッケージとその配下に対しては以下の@Componentが付いていれば自動でDIコンテナに格納されています。

@Componentですが、色々なアノテーションが包含しています。
f:id:snona:20160217011347p:plain
@Serviceや@Controller(@RestControllerは@Controllerを包含しているので@RestControllerも)等です。
STSなら、参照することができるので確認も可能です。