Spring 6.X IoC コンテナ

1. Spring IoC コンテナと Bean の概要

以下では、主に Spring フレームワークの Inversion of Control (IoC) 原則の実装を紹介します。

  • 最初に注意すべきことは、IoC は依存関係注入とも呼ばれるプロセスです。

  • 次に、依存関係の定義です。オブジェクトは、コンストラクター パラメーター、ファクトリ メソッドのパラメーター、またはオブジェクト インスタンスが構築された後、またはファクトリ メソッドから返された後にオブジェクト インスタンスに設定されたプロパティを通じてのみ、依存関係 (つまり、オブジェクトが使用する他のオブジェクト) を定義します。

  • 依存関係の注入: コンテナーは、Bean の作成時に最初の 2 つのステップの依存関係を注入します。このプロセスは本質的に Bean 自体の逆であり (そのため「制御の反転」という名前が付けられています)、クラスの直接構築やサービス ロケーター パターンなどのメカニズムを使用して、その依存関係のインスタンス化や位置を制御します。

  • 関連するパッケージ: org.springframework.beansSpring org.springframework.contextFramework は IoC コンテナの基礎です。BeanFactory インターフェースは、あらゆる種類のオブジェクトを管理できる高度な構成メカニズムを提供します。ApplicationContext は BeanFactory のサブインターフェースです。これにより、Spring の AOP 機能、メッセージ リソース処理 (国際化のため)、アクティビティ パブリッシング、アプリケーション層固有のコンテキスト (Web アプリケーションの WebApplicationContext コンテキストなど) との統合が容易になります。

    つまり、BeanFactory は構成フレームワークと基本機能を提供し、ApplicationContext はエンタープライズ固有の機能をさらに追加します。

  • Bean: BeanFactory Spring では、アプリケーションのバックボーンを形成し、Spring IoC コンテナによって管理されるオブジェクトは Bean と呼ばれます。Bean は、Spring IoC コンテナによってインスタンス化、組み立て、管理されるオブジェクトです。IoC によって管理されない場合、Bean はアプリケーション内の多数のオブジェクトの 1 つにすぎません。Bean とそれらの間の依存関係は、コンテナーによって使用される構成メタデータに反映されます。

1.1. コンテナの概要


  • Spring IoC コンテナのメイン インターフェイスはApplicationContext インターフェイスでありorg.springframework.context.ApplicationContext、Bean のインスタンス化、構成、アセンブルを担当します。コンテナーは、構成メタデータを読み取ることによって、どのオブジェクトをインスタンス化、構成、およびアセンブルするかについての指示を取得します。構成メタデータは、XML、Java アノテーション、または Java コードで表現されます。これにより、アプリケーションのオブジェクトとそれらのオブジェクト間の豊富な相互依存関係が可能になります。

  • ApplicationContextSpring
    ApplicationContextSpring は、ApplicationContext インターフェイスの複数の実装を提供します。スタンドアロン アプリケーションでは、ClassPathXmlApplicationContext または FileSystemXmlApplicationContext のインスタンスを作成するのが一般的です。XML は構成メタデータを定義するための従来の形式ですが、Java アノテーションまたはコードをメタデータ形式として使用するようにコンテナに指示する少量の XML 構成を提供することで、これらの追加のメタデータ形式のサポートを宣言的に有効にすることができます。

  • インスタンス化
    ほとんどのアプリケーション シナリオでは、1 つ以上の Spring IoC コンテナ インスタンスをインスタンス化するために明示的なユーザー コードは必要ありません。

  • Working View
    Application クラスは構成メタデータと結合されるため、ApplicationContext が作成および初期化された後、完全に構成された実行可能なシステムまたはアプリケーションが完成します。

ここに画像の説明を挿入します

1.3. 使用方法

ApplicationContext は、さまざまな Bean とその依存関係のレジストリを管理する高レベル ファクトリへのインターフェイスです。Bean のインスタンスは、メソッド T getBean(String name, Class T requiredType) を使用して取得できます。

// 创建并配置bean
ApplicationContext context = new ClassPathXmlApplicationContext("services.xml", "daos.xml");

//检索配置的实例
PetStoreService service = context.getBean("petStore", PetStoreService.class);

//使用配置的实例
List<String> userList = service.getUsernameList();

おすすめ

転載: blog.csdn.net/qq_35241329/article/details/132272571