部署springboot項目讀取外部配置文件實現過程
部署springboot項目讀取外部配置文件
我們在部署springboot項目的時候,經常會遇到這樣的情況:
測試環(huán)境與生產環(huán)境的配置不一樣,這就導致每次部署的時候都要修改配置文件再打包,即使用了nacos進行配置管理,但測試環(huán)境與生產環(huán)境的nacos部署的地方肯定不一樣,所以每次部署的時候還是需要修改配置文件里的nacos地址,這樣比較麻煩,有時候還可能會忘記修改。
經過查資料了解到其實springboot可以讀取外部配置文件,即在springboot應用啟動后,不直接使用jar包里面的配置文件,而是讀取某個目錄下的配置文件,然后進行覆蓋,從而實現應用與配置分離,這樣就不用每次部署都修改配置文件了。
官方文檔里的描述

從官方文檔里的描述可以知道:
SpringApplication讀取配置文件的方式有四種,并且是有優(yōu)先級的,所有方式下的配置文件都會被讀取,高優(yōu)先級的內容會覆蓋低優(yōu)先級的內容
四種讀取方式
如下:
- 1、在jar包的同一目錄下建一個config文件夾,然后把配置文件放到這個文件夾里
- 2、直接把配置文件放到jar包的同級目錄
- 3、在classpath下建一個config文件夾,然后把配置文件放進去
- 4、在classpath下直接放配置文件
項目被打成jar包后,配置文件會被放在BOOT-INF的classes目錄下:

這就是上面所說的第四種讀取方式,也是優(yōu)先級最低的讀取方式
綜上所述,我們可以使用第一、二種配置文件讀取方式來實現應用與配置分離,我這里是用的第二種方式,將配置文件放到了jar包的同級目錄:

這樣當項目啟動的時候,它就會去讀取這個配置文件,并且覆蓋掉jar包里的配置文件
如果想把配置文件放在任意目錄,那就需要在jar包的啟動命令里指定配置文件的路徑,
參數如下:
spring.config.location=xxx
完整配置示例如下:
nohup java -jar nms-alarm-manager.jar --spring.config.location=/home/my-config/bootstrap.yml &
總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
MybatisX-Generator不生成domain文件夾的問題及解決
在使用MybatisX-Generator生成數據庫表實體時,如果發(fā)現沒有生成domain文件夾以及User.java文件,是因為MybatisX版本更新,最新版需要在options里額外勾選model才能生成domain,勾選model并點擊finish后,成功生成domain文件夾及User.java文件2025-01-01
帶你走進Maven的大門-最全Maven配置及集成idea工具總結
Maven項目對象模型(POM),是一個項目管理工具可以通過一小段描述信息來管理項目的構建,報告和文檔的軟件.那我們想要在IDEA中使用Maven得進行一些配置,接下來我們具體看一下是如何配置使用的,需要的朋友可以參考下2021-06-06

