SpringCloud读取Nacos配置中心报错:Could not resolve placeholder ‘xxx’ in value ‘${xxx}

这篇具有很好参考价值的文章主要介绍了SpringCloud读取Nacos配置中心报错:Could not resolve placeholder ‘xxx’ in value ‘${xxx}。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

hello,我是灰小猿,一个超会写bug的程序员!

近期在写一个spring cloud Alibaba读取Nacos配置中心远程配置文件的内容时,出现了几个比较坑的bug,在此记录一下,帮大家避避坑。

我的使用场景:

  • SpringBoot版本为2.6.0
  • Spring Cloud版本为2021.0.1
  • Spring Cloud Alibaba版本为2021.0.1.0

如果你的Cloud版本是2020.0.0版本之后的,建议直接先看是否是由第二个坑引起的。

第一个坑:Could not resolve placeholder ‘xxx’ in value ‘${xxx}

出现该报错的意思一般是使用@Value()注解读取的配置文件数据无法解析

可能情况有两种:一种是配置文件注册进去了,但是没有读取到配置文件中的指定参数

第二种情况:配置文件就没有解析注册,导致无法读取到参数信息,我的是由于第二种,解决在第二个坑。

如果第一种就检查yml中参数格式是否正确,拼写是否正确等

如果确认都正确就可能是下面的原因:

因为根据官方文件介绍,

SpringCloud读取Nacos配置中心报错:Could not resolve placeholder ‘xxx’ in value ‘${xxx}

 因此需要检查你本地代码中的bootstrap.yml中写的配置文件的名称,是否能够和Nacos中的配置文件的名称对应上,

在这里还应该注意:Nacos中的配置文件的DataId中要写入文件的后缀,并且Nacos是区分yaml和yml的,所以Nacos中的后缀要和本地bootstrap.yml中的file-extension的参数对应!

正确的情况下,我的Nacos文件如下:

SpringCloud读取Nacos配置中心报错:Could not resolve placeholder ‘xxx’ in value ‘${xxx}

我的 bootstrap.yaml文件如下:

server:
  port: 8081
spring:
  application:
    name: nacos-config-a
  cloud:
    nacos:
      config: # 项目在启动时,配置怎么去哪里拿去配置文件?
        server-addr: localhost:8848
        username: nacos
        password: nacos
        file-extension: yaml # 配置文件类型
        # namespace: public # namespace不写时去默认名称空间获取
        # group: DEFAULT_GROUP # group不写时去默认组获取
        # prefix: nacos-config-a # 表示读取哪个配置文件?不写时默认使用${spring.application.name}

以上配置文件名称对应完毕之后,先启动Nacos,再重启启动本地IDEA,测试是否启动成功!

如果确定上述文件配置没有问题的话,建议看一下是否是第二个坑,

第二个坑:Param ‘serviceName‘ is illegal, serviceName is blank

我就是上面确定文件类型对应没有问题了,但是启动还是会报第一个错误,经过很多尝试之后出现了第二个报错,当然同学们也肯定没有出现第二个报错,仍然还是启动不起来,

我们知道SpringCloud连接远程Nacos是需要使用bootstrap配置文件的,

但是在2020.0.0版本之后,SpringCloud不再默认识别并加载bootstrap.yml配置了,也就是说就算你有bootstrap.yml文件,在不引入相关依赖的情况下,系统启动也不会给你读取的,坑!!!

因此如果你需要启动bootstrap配置,需要在你的pom中加入如下依赖,

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

之后重新加载pom,并启动项目即可!

如果大家有遇到相关问题或其他解决,也欢迎在评论区留言讨论!

我是灰小猿,我们下期见!
 文章来源地址https://www.toymoban.com/news/detail-450379.html

到了这里,关于SpringCloud读取Nacos配置中心报错:Could not resolve placeholder ‘xxx’ in value ‘${xxx}的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 报错ssh: Could not resolve hostname

    …按照网上好多教程试了一下: 新建密钥,添加到gitee,重新测试。 修改host,加入gitee的ip地址到里面去。 修改.gifconfig配置文件,配置成ssh的仓库链接。 这上面的方法都不行,后面发现一篇文章:SSH连服务器时,连接不上,出现以下错误的原因与解决办法。 才知道是因为一

    2024年02月06日
    浏览(48)
  • Could not resolve placeholder “xxx“ in value “${}“ springboot启动报错:IllegalArgumentException: Could not resolve placeholder ‘‘ in value “${}“

    在网上看了很多方法,都没有用。 首先我确定我的yml配置文件里面配置没有错: 然后地址引用的地方也加了@Value,类上也加了@Service注解,引用的格式也没有错   其次,我也试过了maven install,package,再三检查了target文件里面有配置文件, 发现都没有错 但是就是报错,经过

    2024年02月11日
    浏览(47)
  • 【错误记录】Android 编译报错 ( Could not resolve xxx | 手动下载依赖库并进行本地配置 Gradle 依赖的解决方案 | 构建 Maven 依赖下载路径 )

    编译 Android Studio 项目时 , 报如下错误 , 下载依赖库失败 ; 报错信息 : 下面是 当前 Android 项目的 Gradle 配置中的 Maven 仓库 ; 其中使用 maven { url \\\"https://repo.spring.io/plugins-release/\\\" } 配置的 Maven 仓库就是对应的地址 ; 使用 google() 函数配置的 Maven 仓库地址 是 https://maven.google.com/ , 可

    2024年04月15日
    浏览(71)
  • Git报错:could not resolve host: gitcode.net解决

    在执行git pull origin master的时候出现了报错:could not resolve host: gitcode.net 解决方法: 1.win+r 输入cmd进入命令行 2.输入ping gitcode.net 然后回车 3.找到Git目录下的etc文件里面的hosts,用记事本打开  4.把域名和IP地址添加到hosts配置文件中  5.再次执行Git命令即可  

    2024年02月15日
    浏览(49)
  • Maven编译报错:Could not resolve dependencies for project

    编译项目时 出现报错: Failed to execute goal on project xxx-mybatis: Could not resolve dependencies for project com.xxx:xxx-mybatis:jar:0.0.1-SNAPSHOT: Could not transfer artifact org.mybatis:mybatis:jar:3.4.5 from/to central ( https://repo.maven.apache.org/maven2): GET request of: org/mybatis/mybatis/3.4.5/mybatis-3.4.5.jar from central failed: Pr

    2024年02月03日
    浏览(56)
  • SpringCloud-搭建Nacos配置中心

    Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一个分布式服务注册、配置管理,以及服务健康管理平台。在微服务架构中,配置管理是至关重要的一环,Nacos 提供了可靠、动态的配置管理功能,为分布式系统的配置中心提供了便捷的解决方案。 Nacos的主要功能图:

    2024年02月20日
    浏览(44)
  • springcloud整合nacos配置中心

    前言 在当今快速发展的云原生应用开发环境中,配置中心的重要性不言而喻。 Nacos作为一个开源的动态服务发现、配置管理和服务管理平台,为开发者提供了一种简单而强大的方式来管理应用程序的配置信息。 而Spring Boot作为一个快速构建应用程序的框架,与Nacos的结合可以

    2024年02月08日
    浏览(48)
  • SpringCloud之Nacos配置中心解读

    目录 基本介绍  概述 动态配置服务 多配置格式编辑器  微服务拉取配置流程 Data ID @RefreshScope 配置共享的优先级 实战使用 简单的共享配置 开发环境的共享配置 环境隔离-命名空间Namespace 业务隔离-Group分组 概述 Nacos除了可以做注册中心,同样可以做配置管理来使用。 所谓

    2024年02月03日
    浏览(57)
  • Nacos配置中心中配置文件的创建、微服务读取nacos配置中心

    在企业项目中会有非常多的服务,不同的开发环境还有不同的配置文件,所以就导致配置文件非常多。 那么肯定就会有一些公共配置,多个服务都是使用过一样的,那么就可以使用配置中心来进行统一管理,避免修改一个配置项要去各个服务都改一遍。 使用传统方式的配置

    2024年02月02日
    浏览(39)
  • BS问题:k8s部署Nacos Could not resolve placeholder ‘NACOS_AUTH_IDENTITY_KEY‘ in value “${NACOS_AUTH_IDENT

    官网文档2.X Kubernetes Nacos Nacos镜像: nacos/nacos-server:latest 我按照官方文档执行到 验证Nacos节点启动成功  然后pods一直重启,查看pod日志   这个参数怎么会少呢? 启动pod的Yaml文件 尝试修改配置文件增加环境变量env: -name: NACOS_AUTH_IDENTITY_KEY   value: serverIdentity 但是依然无效 上面

    2023年04月11日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包