java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Springboot配置文件Nacos和环境变量优先级

Springboot配置文件Nacos和环境变量优先级详解

作者:Treasure_zz

这篇文章主要介绍了Springboot配置文件Nacos和环境变量优先级,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

背景

我们在开发的时候,使用的k8s部署spring boot服务,服务连接nacos获取配置文件。

在配置spring boot的服务的时候,会设置环境变量,来指定spring.profile.active。后来为了方便部署,把nacos的一些配置提到了环境变量。

通过K8S 的env来进行配置。但是后来发现env不会生效,而是nacos生效。

这和平时认为的观点有些出入。因为平时配置的时候,都认为是env 环境变量的优先级比nacos要高一些。

结论

先说结论:

所以在env一般配置决定于nacos加载的内容。

例如,active,nacos的连接配置信息。

生效的顺序如下:

越靠前优先级越高(应该是相应的越晚加载,有待考证)

nacos-{active} 配置 > nacos 配置 > java -jar 命令行配置 > 环境变量 > application-{active} > application > bootstrap-{active} > bootstrap

如果nacos里面通过 这样的${} 占位符进行替换。那么占位符的内容将更生效。

同时占位符的配置也会有优先级的顺序。

nacos 配置 充当占位符 > java -jar 命令行配置 充当占位符 > 环境变量 充当占位符 > nacos-{active} 配置 > ……

之后再补充设计的实验。

最后

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

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