在演示五種裝配方式時,需要構建兩個輔助類
Customer.java
public class Customer { private Address address; public Customer(Address address){ this.address = address; } public Address getAddress() { return address; } public void setAddress(Address address) { this.address = address; }}Address.java
public class Address { private String address; public String getAddress() { return address; } public void setAddress(String address) { this.address = address; }}1、no 默認裝配方式
<!-- 默認自動裝配方式為no時,手動裝配bean --> <bean id="customer" class="com.main.autowrite.defaul.Customer"> <property name="address" ref="address"></property> </bean> <bean id="address" class="com.main.autowrite.defaul.Address"></bean>2、byName 方式自動裝配
<!-- byName自動裝配方式 --> <bean id="customer" class="com.main.autowrite.byname.Customer" autowire="byName"> </bean> <bean id="address" class="com.main.autowrite.byname.Address"> <property name="address" value="Block A 888, CA" /> </bean>3、byType方式自動裝配
<!-- byType自動裝配方式 --> <bean id="customer" class="com.main.autowrite.bytype.Customer" autowire="byType"> </bean> <bean id="address" class="com.main.autowrite.bytype.Address"> <property name="address" value="Block A 888, CA" /></bean>4、constructor方式自動裝配
<!-- constructor自動裝配方式 --> <bean id="customer" class="com.main.autowrite.constructor.Customer" autowire="constructor"> </bean> <bean id="address" class="com.main.autowrite.constructor.Address"> <property name="address" value="Block A 888, CA" /></bean>5、autodetect方式自動裝配
說明:auto-wire’ 和 ‘dependency-check’ 相結合,以確保屬性始終自動裝配成功。
<!-- autodetect自動裝配方式 --> <bean id="customer" class="com.main.autowrite.autodetect.Customer" autowire="autodetect"> </bean> <bean id="address" class="com.main.autowrite.autodetect.Address"> <property name="address" value="Block A 888, CA" /></bean>測試方法: 說明:以上五種裝配方式均可用以下方式來進行驗證,套路是一樣的 這里用byName方式來演示
@Test public void test(){ applicationContext context = new ClassPathxmlApplicationContext("com/main/autowrite/byname/custom.xml"); Customer customer = (Customer)context.getBean("customer"); System.out.println(customer.getAddress().getAddress()); }運行結果為: 
新聞熱點
疑難解答