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
