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 とそれらの間の依存関係は、コンテナーが使用する構成メタデータに反映されます。