[編集:更新された質問を反映するように編集]
あなたの質問は今、はるかに明確です。あなたは(私があなたの考えに正しく従えば)あなたは価値autowire="byName"
の代わりに豆の名前を提供することになっていると思っているようです。byName
それは正しくありません。autowire属性は、いくつかの可能な値を取ることができbyName
、それらの1つです。ここが好きautowire
にbyName
なると:
<bean name="someBean" class="foo.bar.Baz" autowire="byName />
次に、SpringはsomeBean
(foo.bar.Baz
クラス)のすべてのフィールドを調べ、このオブジェクトのすべてのフィールドを名前ごとにワイヤリングしようとします。つまり、(あなたの場合)Customerクラスにフィールドがある場合、Springはそのコンテキストを調べて、CustomerBeanに注入するaccount
名前のBeanを見つけようとします。account
そのようなBeanを2つ定義する場合:
<bean name="customer" class="ultratech.com.Customer" autowire="byName" />
<bean name="account" class="ultratech.com.Account" />
顧客がこの方針に沿ったクラスである場合、あなたは良いことです:
public class Customer {
(...)
private Account account;
(...)
}
Customerクラスにaccountおよびcreditという名前のフィールドがあると仮定すると、XMLコードスニペットは次のようになります。
<beans>
<bean name="customer" class="ultratech.com.Customer" autowire="byName" />
<bean name="account" class="ultratech.com.Account" />
<bean name="credit" class="ultratech.com.Credit" />
</beans>
「byName」自動配線とは別に、次の自動配線を行うことができます。
- いいえ-デフォルト-自動配線なし
- byType-プロパティタイプのBeanを探します-注意してください-ただし、このタイプのBeanは1つだけbyTypeの自動配線が許可されています。複数ある場合は例外が発生します
- コンストラクター-byTypeと同じように機能しますが、コンストラクターパラメーターのみを検索します。すべてのコンストラクターパラメーターは、それぞれのタイプのBeanを1つだけ満たす必要があります。
詳細については、Springリファレンスを参照してください:
http ://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/beans.html#beans-factory-autowire