名前による春のオートワイヤリング
Springで ”
by Autowiring by Name
“は、Beanの名前が他のBeanプロパティの名前と同じ場合は、自動配線します。
たとえば、 “customer” beanが “address”プロパティを公開している場合、Springは現在のコンテナ内の “address” beanを見つけ、それを自動的に配線します。一致が見つからない場合は、何もしないでください。
この機能は、以下のように `autowire =” byName “`で有効にすることができます:
<!-- customer has a property name "address" --> <bean id="customer" class="com.mkyong.common.Customer" autowire="byName"/> <bean id="address" class="com.mkyong.common.Address" > <property name="fulladdress" value="Block A 888, CA"/> </bean>
Spring自動配線の例を名前でご覧ください。
1.ビーンズ
2つの豆、顧客と住所。
package com.mkyong.common; public class Customer { private Address address; //... }
package com.mkyong.common; public class Address { private String fulladdress; //... }
2.スプリング配線
通常、このようなref属性を使用してBeanを明示的に配線します。
<bean id="customer" class="com.mkyong.common.Customer" > <property name="address" ref="address"/> </bean> <bean id="address" class="com.mkyong.common.Address" > <property name="fulladdress" value="Block A 888, CA"/> </bean>
出力
Customer[address=Address[fulladdress=Block A 888, CA]].... ** autowire by name enabled ** を使用すると、プロパティタグをもう宣言する必要はありません。 "address" beanが "customer" beanのプロパティと同じ名前(address)である限り、Springはそれを自動的に結び付けます。
<bean id="customer" class="com.mkyong.common.Customer" autowire="byName"/>
<bean id="address" class="com.mkyong.common.Address" > <property name="fulladdress" value="Block A 888, CA"/> </bean>
__出力__
Customer[address=Address[fulladdress=Block A 888, CA]]….
別の例を見ると、今回は配線が失敗し、 “addressABC”というBeanが “customer”というBeanのプロパティ名と一致しません。
<bean id="customer" class="com.mkyong.common.Customer" autowire="byName"/> <bean id="addressABC" class="com.mkyong.common.Address" > <property name="fulladdress" value="Block A 888, CA"/> </bean>
出力
Customer[address=null].... === ソースコードをダウンロードする ダウンロードする - link://wp-content/uploads/2011/06/Spring-AutoWiring-by-Name-Example.zip[Spring-AutoWiring-by-Name-Example.zip](6 KB) link://tag/spring/[spring]link://タグ/wiring/[wiring]