There is no concept of an abstract bean in java config, because the java language already has everything you need. Do not forget that abstract beans do not appear in context at all, this is a kind of template.
You can rewrite your code 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 value of initTestBean to be shared, you can make it public and enter Config elsewhere if you need to.
Stephane nicoll
source share