是否可以使用基于注释的配置(@Bean等)实现相同的bean继承?
<bean id="inheritedTestBean" abstract="true"
class="org.springframework.beans.TestBean">
<property name="name" value="parent"/>
<property name="age" value="1"/>
</bean>
<bean id="inheritsWithDifferentClass"
class="org.springframework.beans.DerivedTestBean"
parent="inheritedTestBean" init-method="initialize">
<property name="name" value="override"/>
<!-- the age property value of 1 will be inherited from parent -->
</bean>
Run Code Online (Sandbox Code Playgroud)
Ste*_*oll 17
java配置中没有抽象bean的概念,因为java语言已经拥有了你需要的一切.不要忘记抽象bean根本没有暴露在上下文中,它是某种模板.
您可以按如下方式重写上面的代码:
@Configuration
public class Config {
@Bean
public DerivedTestBean() {
DerivedTestBean bean = new DerivedTestBean();
initTestBean(bean);
bean.setName("override");
return bean;
}
private void initTestBean(TestBean testBean) {
testBean.setName("parent");
testBean.setAge(1);
}
}
Run Code Online (Sandbox Code Playgroud)
如果initTestBean应该共享,您也可以将其公开并Config在需要时注入其他地方.
| 归档时间: |
|
| 查看次数: |
5711 次 |
| 最近记录: |