セットインジェクションとコンストラクターインジェクションは、設定を行うときに時々面倒になります。そこで、開発効率を向上させるために、フレームワークでは自動アセンブリ機能を提供し、構成を簡素化します。 Spring フレームワークはデフォルトでは自動アセンブリをサポートしていません。自動アセンブリを使用する場合は、Spring 構成ファイルの
1, byName
Spring 環境からターゲット オブジェクトを取得する場合、ターゲット オブジェクト内の属性は、名前に基づいて Spring 環境全体の
Spring 環境全体: すべての Spring 構成ファイルを検索することを意味し、ID を繰り返すことはできません。
2, byType
Spring環境から対象オブジェクトを取得する際、対象オブジェクト内の属性は、その型に応じてSpring環境全体の
欠点: 同じタイプの Bean オブジェクトが複数ある場合、エラーが発生します。
属性が単一タイプのデータの場合、関連するオブジェクトが複数見つかった場合はエラーが発生します。
属性が配列またはコレクション (ジェネリック) 型の場合、複数の関連オブジェクトが見つかっても例外は発生しません。
3. Constructor
は、コンストラクター メソッドを使用してオブジェクトの挿入を完了します。実際、コンストラクター メソッドのパラメーターの型に基づいてオブジェクトの検索も実行されます。これは、byType を使用するのと同等です。
4、autodetect
自動選択: オブジェクトにパラメーターのない構築メソッドがない場合、コンストラクターの自動アセンブリ メソッドが構築注入用に自動的に選択されます。オブジェクトにパラメーターなしのコンストラクターが含まれている場合、セッター注入には byType 自動アセンブリ メソッドが自動的に選択されます。
5、no
は自動アセンブリ機能をサポートしません。
6、default
は、前のレベルのラベルの自動アセンブリの値がデフォルトで使用されることを意味します。設定ファイルが複数ある場合、各設定ファイルの自動組み立て方法は独立しています。
複数の設定ファイルがある場合、設定ファイルをロードする方法:
1) 全体的な設定ファイルを指定してサブ設定ファイルを含め、全体的な設定ファイルだけを全体的な設定ファイル applicationContext にロードできます。 XML で import タグを使用してサブファイルをパッケージ化します ApplicationContextac= newClassPathXmlApplicationContext("applicationContext.xml");
2) アスタリスクを使用して、複数一致 ファイルをロードするには、ファイル名がルールに準拠している必要があります。 (推奨)
//配置文件的名称 applicationContext.xml applicationContext-action.xml applicationContext-service.xml applicationContext-dao.xml ApplicationContextac =newClassPathXmlApplicationContext("applicationContext*.xml");
3) 配列をパラメータとして使用して、複数の設定ファイルを一度にロードできますString[]files={"applicationContext.xml","applicationContext-test.xml"};
ApplicationContextac = newClassPathXmlApplicationContext(files);
注: 自動アセンブリ機能と手動アセンブリを同時に使用する場合の場合、自動アセンブリは機能しません。 上記は Spring Framework 学習 (4) 自動アセンブリの内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (m.sbmmt.com) に注目してください。