UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【Java】@ComponentScanと@import

Spring Bootで作られたアプリの実装をみていて、@ComponentScan@Importの使い分けがよくわからなかったので調査する

どちらもマルチモジュール のように複数のプロジェクトでクラスを共有したりするときに使う

ただ、@ImportではConfigurationを、@ComponentScanはパッケージ外のコンポーネントを利用するときに指定するもの

@Import

単純に@Import(Configrationクラス.class)とすると、そのConfiguration をDIすることができるが、それだけでなくConfiguration から他の Configuration を読み込むことができるため、アプリ側がConfiguration の依存関係を知る必要なく使うことができる

@ComponentScan

パッケージが異なるクラスをDIする場合に使用する

引数なしで、そのパッケージすべてをDIすることもできれば、引数を指定して特定のクラスだけをDIすることもできる

www.codeflow.site

stackoverflow.com