Springで自動でBeanを配備するしくみ

Springでは、以下の方法で自動的にBeanを配線することができます。

  1. @ComponentScanアノテーションを使用:構成クラス上でこのアノテーションを使用すると、スキャンするパッケージパスを指定でき、Springはアノテーション付きクラスを自動的にスキャンしてアセンブルします。
@Configuration
@ComponentScan(basePackages = "com.example")
public class AppConfig {
    ...
}
  1. @Componentアノテーションをつけることで、自動装配が必要なクラスにこのアノテーションを付与することで、Springはこれを自動的にBeanとしてインスタンス化し、それを必要とする他の箇所へ自動的にインジェクションするようになります。
@Component
public class MyBean {
    ...
}
  1. @Autowiredアノテーションを利用:自動的に注入したい箇所にアノテーションを付与し、Springに同コンテナ内からマッチするBeanを探して注入させる。
@Service
public class MyService {
    @Autowired
    private MyBean myBean;
    ...
}
  1. @Resourceアノテーションを使用する:これは@Autowiredアノテーションに似て、Beanの自動組み立てに使用できますが、@Resourceアノテーションでは、nameプロパティを使用して注入するBeanの名前を指定できます。
@Service
public class MyService {
    @Resource(name = "myBean")
    private MyBean myBean;
    ...
}

DIコンテナを使うとSpringの設定を簡略化し、開発効率を上げられます。ただし、DIコンテナによる自動設定は、競合するBeanの存在によって意図しないBeanの注入につながる恐れがあるため、注入先のBeanを明示的に指定する必要があります。

bannerAds