天天看點

SpringBoot外部配置檔案加載順序優先級

2.10 外部配置檔案加載優先級

SpringBoot配置檔案不僅可以在application.properties/application.yml檔案下配置 還可以在項目外面配置

這裡我重點介紹幾個

1.指令行參數

2.jar包外部的application-{profile}.properties檔案或者application.yml(帶spring.profile)屬性的配置檔案

3.jar包内部的application-{profile}.properties檔案或者application.yml(帶spring.profile)屬性的配置檔案

4.jar包外部的application.properties或者application.yml

5.jar包内部的application.properties或者application.yml

這裡加載配置檔案的優先級我是從高到低順序排列的,即

指令行參數>>jar外部的配置檔案(帶spring.profile屬性的)>>jar内部的配置檔案帶(spring.profile屬性的)>>
jar包外部的不帶(spring.profile屬性的)>>jar包内部的不帶(spring.profile屬性的)

當然這裡的配置檔案加載與配置檔案的加載位置相同,高優先級覆寫低優先級的相同内容,不相同的内容會形成互補配置,現在我們使用Maven打包這個項目,打包項目Maven隻會打包main下面的java以及resources下面的資源,

現在我們來示範

SpringBoot外部配置檔案加載順序優先級

這裡我在resources下配置了兩個application.properties,一個在config目錄下,一個在resources目錄下,

根據Springboot配置檔案加載順序,這裡在複習一遍

項目下的config下的配置檔案優先級大于項目下的配置檔案大于類路徑下的config檔案下的配置檔案大于類路徑下的配置檔案

如果我們把SpringBoot項目打成了一個jar包,

在jar的同級别目錄有一個config目錄,config目錄下有一個配置檔案
jar同級别目錄也有一個配置檔案,
打好的jar裡面resources目錄下也有一個config目錄并且這個目錄下也有一個配置檔案,
打好的jar包裡面resources目錄下也有一個配置檔案.總共四個配置檔案,

總共四個配置檔案,在啟動SpringBoot應用時,會優先加載外部config目錄下的的配置檔案,在加載外部的配置檔案,在加載resources目錄下config目錄下的配置檔案,在加載resource下的配置檔案,相同的屬性高優先級的覆寫低優先級的,不同的屬性所有配置檔案下形成互補配置

繼續閱讀