Spring-beans-autowiring
春-豆の自動配線
XML構成ファイルで<bean>要素を使用してBeanを宣言し、<constructor-arg>および<property>要素を使用して<bean>を挿入する方法を学習しました。
Springコンテナは、<constructor-arg>要素と<property>要素を使用せずに、コラボレーションするBean間の関係を「自動配線」できます。これにより、大きなSpringベースのアプリケーション用に記述するXML構成の量を削減できます。
自動配線モード
次に、自動配線モードを示します。これは、依存関係の注入に自動配線を使用するようSpringコンテナに指示するために使用できます。 <bean/>要素のautowire属性を使用して、Bean定義の autowire モードを指定します。
Sr.No | Mode & Description |
---|---|
1 |
no これはデフォルト設定であり、自動配線は行われず、配線には明示的なBean参照を使用する必要があります。 この配線に対して特別なことをする必要はありません。 これは、依存性注入の章ですでに見たものです。 |
2 |
プロパティ名による自動配線。 Springコンテナは、XML設定ファイルで_autowire_属性が_byName_に設定されているBeanのプロパティを調べます。 次に、構成ファイル内の同じ名前で定義されたBeanとそのプロパティを一致させ、配線しようとします。 |
3 |
プロパティデータ型による自動配線。 Springコンテナは、XML設定ファイルで_autowire_属性が_byType_に設定されているBeanのプロパティを調べます。 次に、 type が構成ファイル内のBean名の1つと正確に一致する場合、プロパティの一致と配線を試みます。 そのようなBeanが複数存在する場合、致命的な例外がスローされます。 |
4 |
byTypeに似ていますが、タイプはコンストラクター引数に適用されます。 コンテナ内にコンストラクタ引数タイプのBeanが1つしかない場合、致命的なエラーが発生します。 |
5 |
autodetect Springはまず_constructor_による自動配線を使用して配線しようとします。動作しない場合、Springは_byType_による自動配線を試行します。 |
*byType* または *constructor* 自動配線モードを使用して、配列や他の型付きコレクションを配線できます。
自動配線の制限
自動配線は、プロジェクト全体で一貫して使用される場合に最適に機能します。 自動配線が一般的に使用されていない場合、開発者がそれを使用して1つまたは2つのBean定義のみを配線するのは混乱を招く可能性があります。 ただし、自動配線を使用すると、プロパティまたはコンストラクター引数を指定する必要性を大幅に減らすことができますが、使用する前に自動配線の制限と欠点を考慮する必要があります。
Sr.No. | Limitations & Description |
---|---|
1 |
Overriding possibility 常に自動配線をオーバーライドする<constructor-arg>および<property>設定を使用して依存関係を指定できます。 |
2 |
Primitive data types プリミティブ、文字列、クラスなどのいわゆる単純なプロパティを自動配線することはできません。 |
3 |
Confusing nature 自動配線は明示的な配線ほど正確ではないため、可能であれば明示的な配線を使用することをお勧めします。 |