日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

一般情況下,springboot默認會在resource目錄下生成一個配置文件(Application.properties或application.yaml),但其實springboot允許配置多個配置文件(application.properties或application.yaml),但是這并不意味著這些配置文件一定會替換默認生成的配置文件,它們是互補的存在。如果在某些場景下需要把配置文件單獨拿出來并且啟動的時候加載進去,那么外部的配置文件將是一個很好的選擇。

配置文件加載順序

需要注意的是配置文件加載順序加載順序在springboot 2.4.0前后是不一樣的。

  • springboot 2.4.0及其之前版本的配置文件加載順序
file:./config/file:./config/*/file:./classpath:config/classpath:復制代碼
  • springboot 2.4.0之后版本的配置文件加載順序
file:./config/*/file:./config/file:./classpath:config/classpath:復制代碼

區別在于springboot 2.4.0之后的版本將file:./config/*/的在順序調整為第一加載順序。
file是指當前jar包所在路徑。
classpath是指springboot resource文件夾下路徑。

驗證

前期準備

  • 新建一個springboot項目
    啟動類如下:
@SpringBootApplicationpublic class MqApplication {public static void main(String[] args) {ConfigurableApplicationContext applicationContext = SpringApplication.run(MqApplication.class, args);ConfigurableEnvironment environment = applicationContext.getEnvironment();String property = environment.getProperty("spring.application.name");System.out.println("current spring.application.name="+property);}}復制代碼

配置文件:

spring.application.name=classpathserver.port=8080復制代碼

為了驗證 springboot 2.4.0之前和之后的版本加載順序的不一樣,會使用兩個版本對比。 對比版本:springboot 2.4.3 和 springboot 2.3.5.RELEASE

下面是不同路徑下配置不同端口和應用名以便驗證。

路徑

端口號

application.name

file:./config/*/

8084

file:./config/*/

file:./config/

8083

file:./config/

file:./

8082

file:./

classpath:config/

8081

classpath:config/

classpath:

8080

classpath:

驗證配置文件加載順序

根據上述表格,將配置文件分別復制到不同的路徑下創建配置文件并按表格修改spring.application.name和server.port屬性值。

啟動項目,下面是兩個版本的啟動信息:

從兩張圖中可以得出結論:

  1. springboot 2.4.0前后配置文件加載順序不一樣
  2. 高優先級的會覆蓋掉低優先級相同的屬性

驗證屬性互補

  1. 修改配置文件:
  • classpath:配置文件
    刪除spring.application.name屬性,增加server.error.path屬性
server.port=8080server.error.path=/test復制代碼
  • file:./配置文件
    新增server.servlet.context-path屬性
spring.application.name=file:.server.port=8082server.servlet.context-path=file_context復制代碼
  • file:./config/*/配置文件
    保持不變
server.port=8084spring.application.name=file:./config/*/復制代碼
  1. 修改啟動類main方法
    在控制臺打印server.error.path
public static void main(String[] args) {ConfigurableApplicationContext applicationContext = SpringApplication.run(MqApplication.class, args);ConfigurableEnvironment environment = applicationContext.getEnvironment();String property = environment.getProperty("spring.application.name");System.out.println("current spring.application.name="+property);String errorPath = environment.getProperty("server.error.path");System.out.println("errorPath="+errorPath);}復制代碼
  1. 啟動項目

從上面截圖中可以發現三個配置文件中的所有屬性都被加載出來了,而且優先級高的配置文件中的屬性會覆蓋優先級低的配置文件中的屬性。

總結

springboot中可以配置多個配置文件,并且這些配置文件是可以共存的。當屬性相同時,優先級高的配置文件會覆蓋優先級低的配置文件中的屬性;當屬性不同時,最終的配置會取各個配置文件中屬性的并集。


作者:索碼理
鏈接:
https://juejin.cn/post/7126394308294344711
來源:稀土掘金
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

分享到:
標簽:springboot
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定