开发者

Springboot服务引用Nacos中新增的配置文件失败问题及解决

开发者 https://www.devze.com 2025-06-06 10:47 出处:网络 作者: Stephen·You
目录问题现象问题分析解决方法总结问题现象 今天在项目中遇到一个问题: Nacos中新增一个 sgccamapappserver-dev.yml 配置文件,然后让 Springboot 服务引用这个新的配置文件,但是失败了!!!启动服务后发现读取的
目录
  • 问题现象
  • 问题分析
  • 解决方法
  • 总结

问题现象

今天在项目中遇到一个问题:

Nacos中新增一个 sgccamapappserver-dev.yml 配置文件,然后让 Springboot 服务引用这个新的配置文件,但是失败了!!!启动服务后发现读取的还是原来的 sgccamapappserver.yml 配置文件!!!

Springboot服务引用Nacos中新增的配置文件失败问题及解决

问题分析

这个问题其实是涉及到了nacos加载配置文件的顺序逻辑:

首先看一下服务的bootstrap.peoperties配置

修改前,加载的nacos配置文件是 sgccamapappserver.yml

Springboot服务引用Nacos中新增的配置文件失败问题及解决

修改后,加载的nacos配置文件是 sgccamapappserver-dev.yml

Springboot服务引用Nacos中新增的配置文件失败问题及解决

那么为什么会加载失败呢?

其实问题就出现在微服务名称这里,可以看出是 sgccamapappserver

Springboot服务引用Nacos中新增的配置文件失败问题及解决

导致 sgccamapappserver-dev.yml 加载失败的原因就是因为:

springboot项js目默认会优先查询nacos中与微服务名称相同的配置;

所以当nacos中存在 sgccaDTFVOLmapappserver.yml 配置文件,则会直接加载这个配置,直接略过了下面这个配置:

Springboot服务引用Nacos中新增的配置文件失败问题及解决

还有一个因素,就是当配置中未指定环境,会导致它默认加载与 spphpring.application.name 属性值同名的nacos配置文件

解决方法

从问题分析可以得知要解决javascript这个问题,其实很简单,那就是 指定环境。如:

我现在要加载的nacos配置是 sgccamapappserver-dev.yml

那就可以在 bootstrap.peoperties配置文件中添加如下配置,来指定环境:

Springboot服务引用Nacos中新增的配置文件失败问题及解决

最终:

Springboot服务引用Nacos中新增的配置文件失败问题及解决

亲测js可用!

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号