springBoot项目配置加载优先级

项目中可以在多个地方添加配置文件,相同配置若存在多个配置文件中,优先级高的才会生效。

配置优先级为:命令行参数 > Nacos 远程配置 > JVM 参数 > 系统环境变量 > jar 外部 config > jar 外部根目录 > jar 内部 config > jar 内部 resources 根目录

验证环境

java 8

springBoot 2.7.18

验证

构建一个springBoot 项目,导入web依赖,在不同地方添加server.port配置,由低到高在不同地方添加server.port配置观察生效情况。项目启动后不添加任何配置默认端口是8080

1、jar 内部 resources 根目录

resource目录下添加配置文件设置端口为8081,重启项目

2、jar 内部 config

在resources目录下创建config目录并添加配置文件设置端口为8082

3、jar 外部根目录

打包项目,并在jar目录下添加配置设置端口为8083,使用java -jar 启动jar包

4、jar 外部 config

在jar对应目录下新增config目录,然后添加配置文件并设置端口为8084,java -jar 重启项目观察端口

5、系统环境变量

添加环境变量server.port=8085,重启工程观察端口(添加环境变量后cmd要重新打开,否则新增配置不会生效)。

6、JVM 参数

在java -jar 启动jar包时添加参数-Dserver.port=8086重启项目。注意jvm 参数位置:java JVM参数(-D/-Xms) -jar xxx.jar 程序启动参数(--)

7、命令行参数

添加同时添加命令行参数 --server.port=8087,重启服务。

到此为止,除了nacos配置外,其余位置优先级已全部验证。

多环境配置加载规则(application-xxx.yml)

1、先加载主配置 application.yml

2、再加载激活的环境配置 application-dev.yml / application-prod.yml

3、环境配置中同名 key 会覆盖主配置的值

激活方式三种:

yml 内:spring.profiles.active=dev

JVM 参数:-Dspring.profiles.active=dev

命令行:--spring.profiles.active=dev

相关推荐
zzzll11111 小时前
Loop Engineering:循环工程的原理、实践与应用
java·数据库·python
假客套1 小时前
记一次若依 Excel 导出踩坑:Permission denied、401 报错完整排查记录
java·若依·linux服务器
岁岁养乐多1 小时前
深入解析 Spring @Cacheable 注解:从声明式缓存 到多维替代方案
java
开发者联盟league2 小时前
maven核心插件介绍
java·maven
代码方舟2 小时前
Java数据工程:利用天远车辆vin码查车辆信息详版优化抵押贷款合规体验
java·人工智能
编程令我快乐2 小时前
maven中deploy 的流程
java·maven
jaysee-sjc2 小时前
【JavaWeb】Tlias智能学习辅助系统|后端Web实战(登录认证)
java·开发语言·前端·学习·mybatis
南城以南溫暖如初1472 小时前
社区健身小程序开发流程详解:技术选型与实施经验分享
java·经验分享·spring boot·mysql·vue·apache
万维易源2 小时前
免费药品信息查询:用API 读懂常用药
java·前端·数据库·药品信息·药品查询·药品查询api