名称为“ configServicePropertySource”的无效bean定义

时间:2018-11-04 12:32:08

标签: spring spring-boot spring-oauth2 spring-config

我已经定义了ConfigServicePropertySourceLocator bean,如下所示

@Primary
@Bean
public ConfigServicePropertySourceLocator configServicePropertySource(
        ConfigClientProperties configClientProperties) {
    ConfigServicePropertySourceLocator sourceLocator = new ConfigServicePropertySourceLocator(
            configClientProperties);
    sourceLocator.setRestTemplate(clientOnlyRestTemplate());
    return sourceLocator;
}

但是我得到以下异常(这是在docker中打印的方式),尽管我的bean被标记为@Primary

WARN 1 --- [           main] s.c.a.AnnotationConfigApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: 
org.springframework.beans.factory.support.BeanDefinitionOverrideException: 
Invalid bean definition with name 'configServicePropertySource' defined in de.ig.client.security.configuration.ConfigClientSecurityConfiguration: 
Cannot register bean definition [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; 
dependencyCheck=0; autowireCandidate=true; primary=true; factoryBeanName=configClientSecurityConfiguration; 
factoryMethodName=configServicePropertySource; initMethodName=null; destroyMethodName=(inferred); 
defined in de.ig.client.security.configuration.ConfigClientSecurityConfiguration] for bean 'configServicePropertySource': 
There is already [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; 
autowireCandidate=true; primary=false; factoryBeanName=configServiceBootstrapConfiguration; 
factoryMethodName=configServicePropertySource; initMethodName=null; destroyMethodName=(inferred); 
defined in org.springframework.cloud.config.client.ConfigServiceBootstrapConfiguration] bound.

1 个答案:

答案 0 :(得分:1)

通过设置

解决了

spring.main.allow-bean-definition-overriding改为 true

引导版本2.1的新功能