在演示五种装配方式时,需要构建两个辅助类
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()); }运行结果为:
新闻热点
疑难解答