天天看點

SpringBoot配置配置檔案優先級

https://blog.csdn.net/IT_faquir/article/details/80869578?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control

配置檔案目錄

SpringBoot配置檔案可以放置在多種路徑下,不同路徑下的配置優先級有所不同。

可放置目錄(優先級從高到低)

file:./config/ (目前項目路徑config目錄下);

file:./ (目前項目路徑下);

classpath:/config/ (類路徑config目錄下);

classpath:/ (類路徑config下).

優先級由高到底,高優先級的配置會覆寫低優先級的配置;

SpringBoot會從這四個位置全部加載配置檔案并互補配置;

我們可以從ConfigFileApplicationListener這類便可看出,其中DEFAULT_SEARCH_LOCATIONS屬性設定了加載的目錄:

private static final String DEFAULT_SEARCH_LOCATIONS = “classpath:/,classpath:/config/,file:./,file:./config/”;

1

接着getSearchLocations方法中去逗号解析成Set,其中内部類Loader負責這一配置檔案的加載過程,包括加載profile指定環境的配置,以application+’-’+name格式的拼接加載。

多種目錄配置同時存在情況

接下來還是以端口配置為例

在resources/目錄下配置檔案設定端口為8888;

在resources/config目錄下配置檔案設定端口為9999;

在項目路徑下配置檔案設定端口為6666;

在項目路徑config目錄下配置檔案設定端口為7777;

最終運作結果:

Tomcat started on port(s): 7777 (http) with context path ‘/beedo’

Started BeedoApplication in 4.544 seconds (JVM running for 5.335)

1

2

通過控制變量法得以論證

其優先級由高到底,高優先級的配置會覆寫低優先級的配置

————————————————

版權聲明:本文為CSDN部落客「IT_faquir」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。

原文連結:https://blog.csdn.net/IT_faquir/article/details/80869578