通過擴展原始@Configuration類來覆蓋Javaconfig Bean時,我想爲新的Bean定義添加@DependsOn。Javaconfig bean overiding沒有考慮添加@DependsOn
但是,這取決於似乎沒有考慮到。這裏是一個TestCase再現我的問題:
public class SpringTest {
@Test
public void testDependsOnTakenInAccount() {
AnnotationConfigApplicationContext ctx2 = new AnnotationConfigApplicationContext(AConfig.class, CConfig.class);
Assert.assertEquals("overriden", ctx2.getBean("bean"));
}
@Configuration
public static class AConfig {
@Bean
public Object bean() {
return "not overriden";
}
}
@Configuration
public static class CConfig extends AConfig {
protected boolean isInitialized = false;
@Bean
public Void doInit() {
isInitialized = true;
return null;
}
@Bean
@DependsOn("doInit")
public Object bean() {
if (!isInitialized) {
throw new RuntimeException("Not initialized");
}
return "overriden";
}
}
}
這是一個預期的行爲?如果是的話,我如何在重寫bean時添加依賴關係?
經過一段時間沒有評論,我會解決jira問題,看看是否真的是一個錯誤。 –
嗨,何塞,我創建了https://jira.springsource.org/browse/SPR-10992,但還沒有答案 – bla