Spring IoC コンテナーと Bean の概要

この章では、制御反転 (IoC) 原理の Spring Framework 実装について説明します。依存性注入 (DI) は IoC の特殊な形式であり、オブジェクトはコンストラクター引数、ファクトリメソッドへの引数、またはその後のオブジェクトインスタンスに設定されるプロパティを通じてのみ依存関係 (つまり、操作する他のオブジェクト) を定義します。構築されるか、ファクトリメソッドから返されます。IoC コンテナーは、Bean を作成するときにこれらの依存関係を注入します。このプロセスは基本的に、クラスの直接構築やサービスロケーターパターンなどのメカニズムを使用して依存関係のインスタンス化や位置を制御する Bean 自体の逆 (そのため、制御の反転という名前が付けられています) です。

org.springframework.beans および org.springframework.context パッケージは、Spring Framework の IoC コンテナーの基盤です。BeanFactory (Javadoc) インターフェースは、あらゆる型のオブジェクトを管理できる高度な構成メカニズムを提供します。ApplicationContext (Javadoc) は BeanFactory のサブインターフェースです。以下を追加します。

  • Spring の AOP 機能との簡単な統合

  • メッセージリソースの処理 (国際化で使用するため)

  • イベント公開

  • Web アプリケーションで使用する WebApplicationContext などのアプリケーション層固有のコンテキスト。

つまり、BeanFactory は構成フレームワークと基本機能を提供し、ApplicationContext はより多くのエンタープライズ固有の機能を追加します。ApplicationContext は BeanFactory の完全なスーパーセットであり、この章で Spring の IoC コンテナーの説明でのみ使用されます。ApplicationContext, の代わりに BeanFactory を使用する方法の詳細については、BeanFactory API に関するセクションを参照してください。

Spring では、アプリケーションのバックボーンを形成し、Spring IoC コンテナーによって管理されるオブジェクトを Bean と呼びます。Bean は、Spring IoC コンテナーによってインスタンス化、アセンブル、管理されるオブジェクトです。それ以外の場合、Bean はアプリケーションの多くのオブジェクトの 1 つにすぎません。Bean とそれらの間の依存関係は、コンテナーが使用する構成メタデータに反映されます。