There is no notion of abstract bean in java config because the java language already has everything you need. Don't forget that abstract beans are not exposed in the context at all, it's some kind of template.
You could rewrite your code above as follows:
@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);
}
}
If the initTestBean
should be shared, you can just as well make it public and inject Config
in other places if you need to.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…