我正在尝试创建一个 MainConfig,它使用 @Bean 方法而不是 @Import 来导入另一个 Config,如下所示:
@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);
}
}
我错过了什么还是不支持?
谢谢