SpringCloud无法获取Nacos中的配置文件信息解决方案

 更新时间:2025年12月08日 09:15:59   作者:会脸红的情先生  
文章介绍了在项目启动时解决@Value占位符值找不到问题的步骤,包括检查版本号、添加依赖、检查配置文件优先级以及正确配置dataID

在项目启动时始终报错@Value(${})值找不到

无法解析占位符中的值

1.着重检查nacos、springcloud、springcloudalibaba等相关版本号是否对应的上。

2.检查项目中的依赖是否添加:

        <!-- nacos config -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

3.检查项目中配置文件优先级。又很对人在之前cloud版本中都是用的application.yml,这里我们需要使用bootstrap.yml,它的优先级大于application.yml。

spring:
  application:
    name: nacos-config-demo # 应用名称也是构成 Nacos 配置管理 dataId 字段的一部分 (当 config.prefix 为空时)
  cloud:
    # Nacos客户端
    nacos:
      discovery:
        # Nacos
        server-addr: 127.0.0.1:8848
        namespace: #命名空间为nacos配置的,自动生成或手动配置的
        group: DEFAULT_GROUP
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yaml
        namespace:  #命名空间为nacos配置的,自动生成或手动配置的
        group: DEFAULT_GROUP
        prefix: nacos-config-demo

dataID完整格式如下

在 Nacos Spring Cloud 中,dataId 的完整格式如下:

${prefix}-${spring.profiles.active}.${file-extension}

prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。

spring.profiles.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。

注意:

当 spring.profiles.active 为空时,对应的连接符 -也将不存在,dataId 的拼接格式变成 p r e f i x . {prefix}. prefix.{file-extension} file-exetension

为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持properties 和 yaml 类型。

${prefix}取值默认为项目名

也可以自由配置,声明我们需要的配置文件

${spring.profiles.active} 为项目指定的环境,例如dev。项目中不配置则为空,也不拼接 - 

${file-extension}为指定的文件类型

例如我的项目没有指定spring.profiles.active,则最终拼接的文件名称为: 

nacos-config-demo.yaml 

如果我指定了spring.profiles.active=dev则最终拼接文件名为: 

nacos-config-demo-dev.yaml

4.如果以上都没解决问题,再次检查pom文件依赖是否引入spring-cloud-starter-bootstrap包。

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SpringCloud服务接口调用OpenFeign及使用详解

    SpringCloud服务接口调用OpenFeign及使用详解

    这篇文章主要介绍了SpringCloud服务接口调用——OpenFeign,在学习Ribbon时,服务间调用使用的是RestTemplate+Ribbon实现,而Feign在此基础上继续进行了封装,使服务间调用变得更加方便,需要的朋友可以参考下
    2023-04-04
  • SpringBoot整合JPA的增删改查教程

    SpringBoot整合JPA的增删改查教程

    SpringJPA通过对象关系映射、仓库接口、查询生成和事务管理,简化了Java应用程序中的数据持久化操作,它自动实现数据访问,减少样板代码,降低复杂性,并与Spring框架无缝集成
    2026-03-03
  • mybatis调用存储过程的实例代码

    mybatis调用存储过程的实例代码

    这篇文章主要介绍了mybatis调用存储过程的实例,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-10-10
  • 一文详解Object类和抽象类

    一文详解Object类和抽象类

    这篇文章主要介绍了一文详解Object类和抽象类,文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下。希望对你的学习有所帮助
    2022-08-08
  • Spring将MultipartFile转存到本地磁盘的三种方式

    Spring将MultipartFile转存到本地磁盘的三种方式

    在Java中处理文件向来是一种不是很方便的操作,然后随着Spring框架的崛起,使用Spring框架中的MultipartFile来处理文件也是件很方便的事了,今天就给大家介绍Spring将MultipartFile转存到本地磁盘的方式,需要的朋友可以参考下
    2024-10-10
  • Java 线程池ThreadPoolExecutor源码解析

    Java 线程池ThreadPoolExecutor源码解析

    这篇文章主要介绍了Java 线程池ThreadPoolExecutor源码解析
    2022-03-03
  • Spring Cloud Ribbon负载均衡器处理方法

    Spring Cloud Ribbon负载均衡器处理方法

    这篇文章主要介绍了Spring Cloud Ribbon负载均衡器处理方法,看看是如何获取服务实例,获取以后做了哪些处理,处理后又是如何选取服务实例的,需要的朋友可以参考下
    2018-02-02
  • Java中的Valid和Validated的比较内容

    Java中的Valid和Validated的比较内容

    在本篇文章里小编给大家整理的是关于Java中的Valid和Validated的比较内容,对此有兴趣的朋友们可以学习参考下。
    2021-02-02
  • Java如何对返回参数进行处理

    Java如何对返回参数进行处理

    这篇文章主要介绍了Java如何对返回参数进行处理问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • 找不到正确的java_home路径报错解决

    找不到正确的java_home路径报错解决

    本文主要介绍了找不到正确的java_home路径报错解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07

最新评论