java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Springboot服务引用Nacos中新增的配置文件

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

作者:Stephen·You

这篇文章主要介绍了Springboot服务引用Nacos中新增的配置文件失败问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

问题现象

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

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

问题分析

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

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

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

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

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

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

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

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

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

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

解决方法

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

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

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

最终:

亲测可用!

总结

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

您可能感兴趣的文章:
阅读全文