最新の安定バージョンについては、Spring Framework 6.2.8 を使用してください!

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

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

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