xingxiaochenchen 2026-03-14 16:53 采纳率: 0%
浏览 3

SpringCloud

SpringCloud在配置Nacos的共享配置出现了获取不到参数数据的问题

版本:
SpringBoot 3.2.9
SpringCloud 2023.0.3
SpringCloudAlibaba 2023.0.3.3

bootstrap.yml配置

spring:
  application:
    name: gateway # 服务名称
  profiles:
    active: dev
  cloud:
    nacos:
      server-addr:    # nacos地址
      config:
        file-extension: yaml # 文件后缀名
        shared-configs:
          - data-id: test.yaml
            group: DEFAULT_GROUP 
            refresh: true

配置出现一下爆红问题:

img

使用旧版本未发生这样的问题,并且共享数据能够获取到:
版本
SpringBoot 2.7.12
SpringCloud 2021.0.3
SpringCloudAlibaba 2023.0.4.0

如何解决?

  • 写回答

1条回答 默认 最新

  • 檀越@新空间 2026-03-14 16:55
    关注

    下午好🌅🌅🌅
    本答案参考通义千问

    在你描述的问题中,Spring Boot 3.2.9、Spring Cloud 2023.0.3 和 Spring Cloud Alibaba 2023.0.3.3 的组合中,bootstrap.yml 中配置的 Nacos 共享配置无法获取到参数数据。这可能是由于 版本兼容性问题或配置格式错误 导致的。


    ✅ 问题分析

    1. 版本差异

      • 旧版本(Spring Boot 2.7.12 + Spring Cloud 2021.0.3 + Spring Cloud Alibaba 2023.0.4.0)能正常工作。
      • 新版本(Spring Boot 3.2.9 + Spring Cloud 2023.0.3 + Spring Cloud Alibaba 2023.0.3.3)出现 shared-configs 获取不到数据的问题。
    2. 可能原因

      • Nacos 配置中心的配置格式不正确,特别是 file-extension 是否与实际文件后缀一致。
      • shared-configs 的写法是否符合新版本要求
      • Spring Boot 3.x 对配置的加载方式发生了变化,可能导致部分配置失效。

    ✅ 解决方案

    1. 确认 Nacos 配置文件的格式和内容

    确保你在 Nacos 控制台中创建的配置文件是:

    • data-id: test.yaml
    • group: DEFAULT_GROUP
    • file-extension: yaml

    并且文件内容格式正确,例如:

    # test.yaml
    test:
      key: value
    

    注意: 如果你在 Nacos 中使用的是 .properties 文件,但 file-extension 设置为 yaml,会导致解析失败。


    2. 检查 bootstrap.yml 的结构和语法

    你的 bootstrap.yml 写法存在一些潜在问题,建议修改如下:

    spring:
      application:
        name: gateway # 服务名称
      profiles:
        active: dev
      cloud:
        nacos:
          server-addr: 127.0.0.1:8848 # 填写正确的 Nacos 地址
          config:
            file-extension: yaml
            shared-configs:
              - data-id: test.yaml
                group: DEFAULT_GROUP
                refresh: true
    

    重点提示:

    • 确保 server-addr 不为空。
    • shared-configs 应放在 config 下面,而不是直接放在 nacos 下。

    3. 升级 Spring Cloud Alibaba 版本

    根据官方文档,Spring Cloud 2023.0.3 对应的 Spring Cloud Alibaba 版本应该是 2023.0.3.0,而不是 2023.0.3.3。

    建议将依赖改为:

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-alibaba-dependencies</artifactId>
        <version>2023.0.3.0</version>
        <type>pom</type>
        <scope>import</scope>
    </dependency>
    

    重点提示:

    • 不要使用 2023.0.3.3 这个版本号,它可能是误写或未发布的版本。

    4. 检查是否引入了 spring-cloud-starter-bootstrap

    如果你没有显式引入这个依赖,可能会导致 bootstrap.yml 无法生效。

    添加以下依赖:

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-bootstrap</artifactId>
    </dependency>
    

    重点提示:

    • 在 Spring Boot 3.x 中,bootstrap.yml 的加载方式有所改变,必须通过 spring-cloud-starter-bootstrap 来启用。

    5. 检查日志中的错误信息

    查看启动日志中是否有如下关键词:

    • Failed to load shared config
    • No configuration found for data-id
    • Nacos Config Service not connected

    这些信息可以帮助你定位具体出错的原因。


    ✅ 修改后的 bootstrap.yml 示例

    spring:
      application:
        name: gateway
      profiles:
        active: dev
      cloud:
        nacos:
          server-addr: 127.0.0.1:8848
          config:
            file-extension: yaml
            shared-configs:
              - data-id: test.yaml
                group: DEFAULT_GROUP
                refresh: true
    

    ✅ 依赖管理示例(Maven)

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-bootstrap</artifactId>
    </dependency>
    
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-alibaba-dependencies</artifactId>
        <version>2023.0.3.0</version>
        <type>pom</type>
        <scope>import</scope>
    </dependency>
    

    ✅ 总结

    | 问题点 | 解决方案 | |--------|----------| | Nacos 配置文件格式错误 | 确认 file-extension 与实际文件一致 | | shared-configs 配置位置错误 | 放在 config 下 | | Spring Boot 3.x 兼容性问题 | 引入 spring-cloud-starter-bootstrap | | Spring Cloud Alibaba 版本错误 | 使用 2023.0.3.0 而非 2023.0.3.3 | | 日志排查 | 检查 Nacos Config Service 相关错误 |


    如需进一步帮助,请提供完整的项目依赖和启动日志,我可以帮你更精准地定位问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月14日