Springcloud学习笔记49--Springboot读取外部配置文件,避免更新jar包内配置文件重新打包部署
1 Springboot读取外部配置文件优先级
如果springBoot项目与配置文件不分离,那么每次修改配置文件都需要重新重新打包部署应用,十分麻烦。解决方法是让springboot读取外部配置文件,实现应用与配置分离。
先看一下官方文档:
24.3 Application property files SpringApplication will load properties from application.properties files in the following locations and add them to the Spring Environment: 01 /config subdirectory of the current directory. 02 The current directory 03 classpath /config package 04 The classpath root The list is ordered by precedence (properties defined in locations higher in the list override those defined in lower locations).
SpringApplication可以从四种方式中读取到配置文件,并且是有优先级的,所有方式下的配置文件都会被读取,高优先级的内容会覆盖底优先级的内容。
- 在jar包的同一目录下建一个config文件夹,然后把配置文件放到这个文件夹下
- 直接把配置文件放到jar包的同级目录
- 在classpath下建一个config文件夹,然后把配置文件放进去
- 在classpath下直接放配置文件
1.1 应用与配置分离
推荐使用方式1,此方式在上述四种方式中优先级最高;
此时打开jar可见port=9020
此时,修改config目录下的配置文件application.yml的端口为9030
nohup java -jar flep-test06-1.0-SNAPSHOT.jar >log.out &
特别注意:启动脚本 nohup java -jar flep-test06-1.0-SNAPSHOT.jar >log.out & 。当前路径必须是jar包所在的路径才能执行;否则需要配置jar的绝对路径;
1.2 通过jar包启动命令指定配置文件
启动项目时指定配置文件的位置(优先级最高)
nohup java -jar -Dspring.config.location=/home/lucky/flep/temp/application.yml flep-test06-1.0-SNAPSHOT.jar >log.out &
看日志可知:
1.3 配置文件在jar包内
我们平常将项目打成jar包之后,配置文件会被放在BOOT-INF的classes目录下,这就是上面所说的第四种方式,也是优先级最低的配置文件读取方式。
参考文献:
https://blog.csdn.net/chang100111/article/details/122191892
https://blog.csdn.net/weixin_45087127/article/details/114894812
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
2020-08-04 Pytorch学习笔记13----LSTM+CRF模型的CRF层原理与代码理解
2019-08-04 04 Mybatis 框架的环境搭建及入门案例
2019-08-04 03 Mybatis框架---学习笔记1--框架的概念及优势