Spring Boot加載配置文件,默認會從幾個固定位置搜索一下看看有沒有配置文件
——application.properties或者bootstrap.properties(如果你使用了spring cloud 相關jar包的話)存在。
這幾個位置分別是:
classpath:/,classpath:/config/,file:./,file:./config/
他們定義在:
看到這個地方你應該明白了:
后邊兩個帶“file:”的目錄是相對目錄,相對的不是你的jar包的存放位置,而是你執行java -jar的目錄。
為了方便理解,再打個比方吧:
假如你的jar包路徑為: /usr/apps/app.jar
而你在根目錄“/”下執行了:java -jar /usr/apps/app.jar
那么你的配置文件不應該放在 /usr/apps/config 或者/usr/apps/ 下,而是應該放在 / 或者 /config下。
當然你也可以直接使用
java -jar /usr/apps/app.jar --spring.config.location=/usr/apps/application.properties
直接指定配置文件的路徑。