gpt4 book ai didi

spring-boot - @ConditionalOnMissingBean 不能被覆盖

转载 作者:行者123 更新时间:2023-12-03 07:13:48 28 4
gpt4 key购买 nike

我正在使用 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.classMyAutoConfiguration.class 位于不同的模块中。

错误:

The bean 'foo', defined in class path resource [com/example/autoconf/configuration/AppConfiguration.class], could not be registered. A bean with that name has already been defined in class path resource [com/my/configuration/MyAutoConfiguration.class] and overriding is disabled.

如何在不设置spring.main.allow-bean-definition-overriding=true属性的情况下使用@ConditionalOnMissingBean

最佳答案

要使 MyAutoConfiguration 被 Spring Boot 选择为自动配置,需要在 META-INF/spring.factories 中声明,如下所示

org.springframework.boot.autoconfigure.EnableAutoConfiguration=x.y.z.MyAutoConfiguration 

有关自定义自动配置的更多详细信息,请查看 here .

关于spring-boot - @ConditionalOnMissingBean 不能被覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57217680/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com