次のように @Import の代わりに @Bean メソッドを使用して、別の構成をインポートする MainConfig を作成しようとしています。
@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 アノテーションを考慮していないように見えるため、データベースが 2 回作成されます。@Import を使用すると、正常に動作します。
次のように InfrastructureConfig をモックしたいので、 @Import を使用したくありません。
@Configuration
public class TestConfig extends MainConfig {
@Override
public InfrastructureConfig infrastructureConfig() {
return mock(InfrastructureConfig.class);
}
}
何か不足していますか、それともサポートされていませんか?
ありがとう