• springcloud alibaba 使用nacos配置中心不读取nacos中的配置


    spring-cloud-alibaba 最新版本 2021.0.1.0

    问题描述

    项目启动无报错,但是不能读取到 Nacos 中配置的数据,而且似乎是根本没有连接到Nacos(注册中心功能可以正常注册),因为如果注释掉application.propertis中的属性 coupon.user.name 则会直接报错,提示@Value("${coupon.user.name}") 读不到配置;

    Nacos Config Starter 实现了 org.springframework.cloud.bootstrap.config.PropertySourceLocator接口,并将优先级设置成了最高。
    在 Spring Cloud 应用启动阶段,会主动从 Nacos Server 端获取对应的数据,并将获取到的数据转换成 PropertySource 且注入到 Environment 的 PropertySources 属性中,所以使用 @Value 注解也能直接获取 Nacos Server 端配置的内容。

    根据上面官方例子中的原理的说明 Nacos Config Starter 实现PropertySourceLocator接口,而我在其实现类中debug并没有执行,由此判断是可能没有连接Nacos。

    解决

    原因是 最新版本(2021.0.1.0)移除了 spring-cloud-starter-bootstrap 的支持,改用 spring.config.import

    解决方法: https://github.com/alibaba/spring-cloud-alibaba/pull/2349

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        <!-- 排除 bootstrap, 未来版本 spring-cloud-alibaba 应该在 spring boot >= 2.4.0 时将该依赖设置为 optional -->
        <exclusions>
            <exclusion>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-bootstrap</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
    # application.yml (不能是bootstrap.yml)
    spring:
      cloud:
        nacos:
          config:
            group: DEFAULT_GROUP
            server-addr: localhost:8848
      config:
        import:
          - optional:nacos:test.yml  # 监听 DEFAULT_GROUP:test.yml
    

    2021.0.1.0 Latest
    ⭐️ Features / Enhancements
    [Nacos Config] Support spring.config.import (#2349 )
    [Nacos Config] Remove dependency spring-cloud-starter-bootstrap (#2349 )

    更多关于这个问题的描述见 https://segmentfault.com/q/1010000041610909

  • 相关阅读:
    Spell checker
    Power Network
    ACM Computer Factory
    Asteroids
    Golang: 并发抓取网页内容
    Golang: 抓取网页内容
    Golang: 读取文件并统计内容
    Golang: 接收命令行输入
    React: 有状态组件生成真实DOM结点
    React: 无状态组件生成真实DOM结点
  • 原文地址:https://www.cnblogs.com/52liming/p/16061194.html
Copyright © 2020-2023  润新知