1. 程式人生 > 實用技巧 >SpringBoot外部配置檔案載入順序優先順序

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下面的資源,


現在我們來演示

在這裡插入圖片描述

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

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

專案下的config下的配置檔案優先順序大於專案下的配置檔案大於類路徑下的config檔案下的配置檔案大於類路徑下的配置檔案

如果我們把SpringBoot專案打成了一個jar包,

在jar的同級別目錄有一個config目錄,config目錄下有一個配置檔案

jar同級別目錄也有一個配置檔案,

打好的jar裡面resources目錄下也有一個config目錄並且這個目錄下也有一個配置檔案,

打好的jar包裡面resources目錄下也有一個配置檔案.總共四個配置檔案,

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