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可以从四种方式中读取到配置文件,并且是有优先级的,所有方式下的配置文件都会被读取,高优先级的内容会覆盖底优先级的内容。

  1. 在jar包的同一目录下建一个config文件夹,然后把配置文件放到这个文件夹下
  2. 直接把配置文件放到jar包的同级目录
  3. 在classpath下建一个config文件夹,然后把配置文件放进去
  4. 在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

posted @   雨后观山色  阅读(1815)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 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--框架的概念及优势
点击右上角即可分享
微信分享提示