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
コンストラクタ]