戴着假发的程序员出品
bean标签中的parent属性
spring应用手册(第一部分)
parent属性可以让当前的bean继承指定的目标bean的属性值。
案例:我们添加要给SubAccountService类。
/**
* @author 戴着假发的程序员
* @company http://www.igeekhome.com
* @description
*/
public class SubAccountService {
private IAccountDAO accountDAO;
public void setAccountDAO(IAccountDAO accountDAO){
this.accountDAO = accountDAO;
}
public void subSave(String name){
System.out.println("SubService-subSave:"+name);
accountDAO.save(name);
}
}
在类级别上SubAccountService和AccountService没有继承关系。但是在配置上我们可以配置继承关系:
<!-- 注册accountDAO_oracle -->
<bean id="accountDAO_oracle" primary="true" class="com.dk.demo1.dao.impl.AccountDAO_oracle"/>
<!-- 注册accountService -->
<bean id="accountService" abstract="true"
autowire="byType" class="com.dk.demo1.service.AccountService"/>
<!-- 配置subService继承AccountService -->
<bean id="subAccountService" parent="accountService"
class="com.dk.demo1.service.SubAccountService"/>
测试:
@Test
public void testSpringParent(){
//创建spring容器
ApplicationContext ac =
new ClassPathXmlApplicationContext("applicationContext.xml");
SubAccountService accountService = ac.getBean(SubAccountService.class);
accountService.subSave("戴着假发的程序员");
}
从配置和测试中我们可以看出来,SubAccountService不光可以继承AccountService的属性值,还可以进行覆盖。