SpringBoot讀取配置文件的優先級


1、springboot讀取配置文件優先級

優先級如下

1. 第一種是在執行命令的目錄下建config文件夾,然后把配置文件放到這個文件夾下。(在jar包的同一個目錄下建config文件夾,執行命令需要在jar包所在目錄下才行)
2. 第二種是直接把配置文件放到jar包的同級目錄
3. 第三種在classpath下建一個config文件夾,然后把配置文件放進去。
4. 第四種是在classpath下直接放配置文件。

springboot默認是優先讀取它本身同級目錄下的一個config/application.properties文件的。在src/main/resource文件夾下創建的application.properties文件的優先級是最低的

所以springboot啟動讀取外部配置文件,只需要在外面加一層配置文件覆蓋默認的即可,不用修改代碼

 

2、指定配置文件路徑啟動程序

#通過 --spring.config.location指定配置文件路徑
nohup java -Xms256M -Xmx1024M -jar  mailgateway-2.0.0.12.jar --spring.config.location=/usr/ums_chenly/application-prod.properties --spring.profiles.active=prod > mailgateway_nohup_out_`date +%Y%m%d`.txt 2>&1 &

說明
1. 如果啟動程序時指定配置文件路徑,則程序運行時只讀取指定的配置文件。指定配置文件不存在則報錯,程序啟動失敗。
2. 如果不指定配置文件路徑,則按上述優先級加載,如果優先級高的配置文件中沒有某個配置項,則會到優先級低的配置文件中找該配置項,即具有互補功能(文件名相同才會互補,比如classpath下的application-prod.properties會補jar包的同級目錄下application-prod.properties的某個配置項,但是classpath下的application.properties不會補application-prod.properties的某個配置項)。如果指定配置文件路徑,則不互補,只會讀取指定的配置文件。

3. 如果spring.config.location和 spring.profiles.active都不指定, 默認找application.properties文件。如果spring.profiles.active指定dev,則默認找application-dev.properties文件。如果spring.profiles.active指定prod,則會找application-prod.properties文件

 

參考地址
https://www.cnblogs.com/zdz8207/p/java-jar-springboot-config.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM