ホームページ  >  記事  >  Java  >  Springフレームワーク学習(4)自動アセンブリ

Springフレームワーク学習(4)自動アセンブリ

黄舟
黄舟オリジナル
2016-12-29 13:15:301267ブラウズ

セットインジェクションとコンストラクターインジェクションは、設定を行うときに時々面倒になります。そこで、開発効率を向上させるために、フレームワークでは自動アセンブリ機能を提供し、構成を簡素化します。 Spring フレームワークはデフォルトでは自動アセンブリをサポートしていません。自動アセンブリを使用する場合は、Spring 構成ファイルの 60e23eb984d18edbb092da6b8f295aba タグの autowire 属性を変更する必要があります。それぞれの値は 6 つあります。さまざまな意味。

1, byName
Spring 環境からターゲット オブジェクトを取得する場合、ターゲット オブジェクト内の属性は、名前に基づいて Spring 環境全体の 60e23eb984d18edbb092da6b8f295aba タグの id 属性値を検索します。同じものがある場合は、このオブジェクトを取得して関連付けを実装します。
Spring 環境全体: すべての Spring 構成ファイルを検索することを意味し、ID を繰り返すことはできません。

2, byType
Spring環境から対象オブジェクトを取得する際、対象オブジェクト内の属性は、その型に応じてSpring環境全体の60e23eb984d18edbb092da6b8f295abaタグのclass属性値を検索します。同じものがある場合は、このオブジェクトを取得して関連付けを実装します。

欠点: 同じタイプの Bean オブジェクトが複数ある場合、エラーが発生します。
属性が単一タイプのデータの場合、関連するオブジェクトが複数見つかった場合はエラーが発生します。
属性が配列またはコレクション (ジェネリック) 型の場合、複数の関連オブジェクトが見つかっても例外は発生しません。

3. Constructor
は、コンストラクター メソッドを使用してオブジェクトの挿入を完了します。実際、コンストラクター メソッドのパラメーターの型に基づいてオブジェクトの検索も実行されます。これは、byType を使用するのと同等です。

4、autodetect
自動選択: オブジェクトにパラメーターのない構築メソッドがない場合、コンストラクターの自動アセンブリ メソッドが構築注入用に自動的に選択されます。オブジェクトにパラメーターなしのコンストラクターが含まれている場合、セッター注入には byType 自動アセンブリ メソッドが自動的に選択されます。
5、no
は自動アセンブリ機能をサポートしません。

6、default
は、前のレベルのラベルの自動アセンブリの値がデフォルトで使用されることを意味します。設定ファイルが複数ある場合、各設定ファイルの自動組み立て方法は独立しています。

複数の設定ファイルがある場合、設定ファイルをロードする方法:
1) 全体的な設定ファイルを指定してサブ設定ファイルを含め、全体的な設定ファイルだけを全体的な設定ファイル applicationContext にロードできます。 XML で import タグを使用してサブファイルをパッケージ化します ec4b2f85bd672b7d99fadc2a2106d72c コード内で構成ファイルをロードします:

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 サイト (www.php.cn) に注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。