springboot(五) 加載配置文件優先級順序

github代碼地址:https://github.com/showkawa/springBoot_2017/tree/master/spb-demo/spb-brian-query-service

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包內部的配置文件


                            優先加載帶profile
2.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)配置文件

複製代碼

分類: Spring

標籤: springboot配置文件加載優先級

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章