【发布时间】:2019-12-04 15:49:36
【问题描述】:
我正在使用 Spring Boot 2.1.6.RELEASE,我想知道应该如何使用 @ConditionalOnMissingBean?
示例配置:
@Configuration
public class MyAutoConfiguration {
@Bean
@ConditionalOnMissingBean
public Foo foo() {
return new Foo();
}
}
@Configuration
@Import(MyAutoConfiguration.class)
public class AppConfiguration {
@Bean
public Foo foo() {
return new Foo("some property");
}
}
AppConfiguration.class 和 MyAutoConfiguration.class 在不同的模块中。
错误:
无法注册在类路径资源 [com/example/autoconf/configuration/AppConfiguration.class] 中定义的 bean 'foo'。已在类路径资源 [com/my/configuration/MyAutoConfiguration.class] 中定义了具有该名称的 bean,并且已禁用覆盖。
如何在不设置spring.main.allow-bean-definition-overriding=true属性的情况下使用@ConditionalOnMissingBean?
【问题讨论】:
标签: spring-boot