1. 程式人生 > >springboot(五) 載入配置檔案優先順序順序

springboot(五) 載入配置檔案優先順序順序

1.springboot配置檔案的載入位置

1.1 springboot啟動會掃描一下位置的application.properties或者application.yml作為預設的配置檔案
工程根目錄:./config/
工程根目錄:./
classpath:/config/
classpath:/
載入的優先順序順序是從上向下載入,並且所有的檔案都會被載入,高優先順序的內容會覆蓋底優先順序的內容,形成互補配置

也可以通過指定配置spring.config.location來改變預設配置,一般在專案已經打包後,我們可以通過指令   java -jar xxxx.jar --spring.config.location=D:/kawa/application.yml來載入外部的配置

 我們來在IDEA裡面實驗一下優先順序載入

先配置classpath:/appliaction.yml 的服務埠8099

再新建classpath:/config/application.yml配置檔案,指定服務埠8090
啟動工程看下控制檯的輸出,發現config裡面的配置生效了,因為優先順序高

如果大家想測試上面一二個個優先順序可以自行測試,這邊就不一 一測試了,不過需要注意的是在工程根路徑下或者根路徑的config下面的配置檔案,在工程打包時候不會被打包進去,大家可以自己測試看下。

2.springboot外部配置的載入順序(參考官方文件) 

2.1 springboot外部配置載入順序如下,優先順序從高到底,並且高優先順序的配置覆蓋底優先順序的配置形成互補配置2.1.1 命令列引數=> 比如:java -jar xxxx.jar --server.port=8087 --server.context-path=/show 多個配置中間用空格分開由jar包外向jar包內進行載入,比如和工程平級目錄下面的配置檔案優先順序高於jar包內部的配置檔案
優先載入帶profile2.1.2 jar包外部的application-{profile}.propertie或application.yml(帶spring.profile)配置檔案           
2.1.3 jar包內部的application-{profile}.propertie或application.yml(帶spring.profile)配置檔案再來載入不帶profile
2.1.4 jar包外部的application.propertie或application.yml(不帶spring.profile)配置檔案
2.1.5 jar包內部的application.propertie或application.yml(不帶spring.profile)配置檔案