AutoDetectによる春のオートワイヤリング
Springでは、デフォルトのコンストラクタ(任意のデータ型の引数)の場合は「
コンストラクタによるオートワイヤ
」を選択し、そうでない場合は「
autowire by type
」を参照してください。
Springの “自動検出による自動配線”の例を参照してください。 “kungfu” beanをコンストラクタまたはタイプ(panda beanの実装のベース)を介して “panda”に自動配線します。
<bean id="panda" class="com.mkyong.common.Panda" autowire="autodetect"/>
<bean id="kungfu" class="com.mkyong.common.KungFu" >
<property name="name" value="Shao lin"/>
</bean>
1. AutoDetect – コンストラクター別
デフォルトコンストラクタが指定されている場合、auto detectはコンストラクタによってワイヤを選択します。
package com.mkyong.common;
public class Panda {
private KungFu kungfu;
public Panda(KungFu kungfu) {
System.out.println("autowiring by constructor");
this.kungfu = kungfu;
}
public KungFu getKungfu() {
return kungfu;
}
public void setKungfu(KungFu kungfu) {
System.out.println("autowiring by type");
this.kungfu = kungfu;
}
//...
}
出力
autowiring by constructor Person[kungfu=Language[name=Shao lin]].... === 2. AutoDetect - タイプ別 デフォルトコンストラクタが見つからない場合、自動検出はタイプによってワイヤを選択します。
package com.mkyong.common;
public class Panda {
private KungFu kungfu;
public KungFu getKungfu() {
return kungfu;
}
public void setKungfu(KungFu kungfu) {
System.out.println("autowiring by type");
this.kungfu = kungfu;
}
//... }
__出力__
autowiring by type
Person[kungfu=Language[name=Shao lin]]….
ソースコードをダウンロードする
ダウンロードする –
Spring-AutoWiring-by-Auto-Detect-Example.zip
(6 KB)
参考文献
-
リンク://spring/spring-autowiring-by-constructor/[Spring Autowiring by
コンストラクタ]