我試圖創建一個通過使用@Bean方法,而不是@Import這樣導入另一個配置一個MainConfig增強:在@Bean方法創建春@Configuration豆不CGLIB
@Configuration
public class MainConfig {
@Bean
public Service service() {
return new Service(infrastructureConfig().database());
}
@Bean
public OtherService otherService() {
return new OtherService(infrastructureConfig().database());
}
@Bean
public InfrastructureConfig intrastructureConfig() {
return new InfrastructureConfig();
}
}
@Configuration
public class InfrastructureConfig {
@Bean
public Database database() {
return new Database();
}
...
}
使用時這個技巧,數據庫被創建了兩次,因爲Spring似乎沒有考慮到InfrastructureConfig上的@Configuration註解。當使用@Import時,它工作正常。
我不想使用@Import因爲我想模仿我InfrastructureConfig這樣的:
@Configuration
public class TestConfig extends MainConfig {
@Override
public InfrastructureConfig infrastructureConfig() {
return mock(InfrastructureConfig.class);
}
}
我缺少的東西,或者是不支持?
感謝