記錄自己的一部分學習經歷。
1.SpringBoot配置文件加載方式
1.1 SpringBoot項目加載內部配置文件
1.1.1 SpringBoot加載內部配置文件的順序
項目目錄結構為標准的maven項目結構,如下圖所示
先寫出結論吧:file:./config > file:./ > classpath:/config > classpath:/
具體可參考SpringBoot文檔:https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-external-config
在項目中表示如下圖所示:
這里先驗證下classpath:/config/application.yml和classpath:/application.yml的優先級
config/application.yml
resources/application.yml
啟動項目,控制台輸出如下所示
起作用的是config/application.yml,因為此優先級比較高。其他的優先級比較小伙伴可以自行測試。
1.2 SpringBoot項目打成jar包之后加載外部的配置文件
將項目打成jar包之后,可以通過命令行或者添加外部的目錄來實現外部配置文件的加載。順道一提,在項目的根路徑config和根路徑下的配置文件並不會被打包到jar中,即下圖兩個配置文件並不會打到jar包中。
解壓jar包之中並沒有配置文件
回歸正題,打成jar包之后,可以在jar包當前目錄下建config,或者直接在jar包同目錄下增加配置文件。
jar包外存在兩個配置文件(config目錄下也有一個application.yml),項目啟動時,優先讀取config目錄下的application.yml。但是,如果項目的resources/application.yml之中已經設置了spring.profiles.active,
那么項目啟動時直接讀取resources下的application.yml配置文件,不會讀取jar包外的配置文件。
除此之外,也可以在命令行模式下通過spring.config.location增加自定義的配置文件存放目錄,該命令設置的配置文件優先級高於別的(最高)。
第一次寫博文,如有錯誤和不足請各位大佬指正