自动装配之constructor
Constructor: 与byType的方式类似,不同之处在于它应用于构造器参数。如果在容器中没有找到与构造器参数类型一致的bean,那么将会抛出异常。
下面通过示例来理解:
JavaBean代码:
//JavaBeanàAddressServiceI定义了一个address属性,和一个相应的set依赖注入方法
public class AddressServiceImpl {
/**住址*/
private String address;
public void setAddress(String address){
this.address=address;
}
}
//JavaBeanàHomeAddressServiceImpl继承了AddressServiceImpl
public class HomeAddressServiceImpl extends AddressServiceImpl {
}
}//JavaBeanàEmpServiceImpl,定义一个companyAddress,和一个相应构造器依赖注入。
public class EmpServiceImpl {
/**公司地址*/
private AddressServiceImpl companyAddress;
public EmpServiceImpl(AddressServiceImpl companyAddress){
this.companyAddress=companyAddress;
}
}
constructor.xml文件:
<bean id="addressServiceImpl" class="cn.csdn.service.AddressServiceImpl" scope="singleton">
<property name="address">
<value>北京上海</value>
</property>
</bean>
<bean id="homeAddressServiceImpl" class="cn.csdn.service.HomeAddressServiceImpl" scope="prototype"
parent="addressSerciceImpl">
<bean id="empServiceImpl" class="cn.csdn.service.EmpServiceImpl" scope="singleton" autowire="constructor"/>
注意:同样黄色区域和绿色区域,只则其一相同类型只能在配置文件中出现一次