NACOS 做配置中心时bean配置覆盖的问题

问题现象

在使用 nacos做配置中心时,启动程序报一下错误:

The bean 'nacosRefreshProperties', defined in class path resource [com/alibaba/cloud/nacos/NacosConfigAutoConfiguration.class], 
could not be registered. A bean with that name has already been defined in URL 
[jar:file:/Users/adore/Software/MAVEN/repo/com/alibaba/cloud/spring-cloud-starter-alibaba-nacos-config/2021.1/spring-cloud-starter-alibaba-nacos-config-2021.1.jar!
/com/alibaba/cloud/nacos/refresh/NacosRefreshProperties.class] and overriding is disabled.

可以看到大体的意思就是程序启动在自动加载配置时,发现了多个配置获取的 namevalue,在获取配置时我使用的是:

@Data
@Component
@RefreshScope
public class AdoreNacosConfig {

    @Value("${adore.appId}")
    private String appId;

    @Value("${adore.appSecret}")
    private String appSecret;

    @Value("${adore.appKey}")
    private String appKey;
}

定位问题

我们可以查找报错的那两个配置加载类:


NacosConfigAutoConfiguration.png

nacosRefreshProperties.png

查看上面两个图片我们可以看到 nacosRefreshProperties这个配置已经被弃用,在自动刷新配置的时候会注入这两个配置,导致冲突。

解决方案

  • 检查包路径及结构,是否出现包错误
  • 启动类加上@ComponentScan(value = "")
  • 在refresh类加上扫描路径com.alibaba.cloud.nacos
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容