首頁  >  文章  >  Java  >  SpringBoot之bootstrap和application的差別是什麼

SpringBoot之bootstrap和application的差別是什麼

WBOY
WBOY轉載
2023-05-16 17:46:343102瀏覽

    bootstrap和application的區別說明

    #bootstrap和application都是SpringBoot專案中的設定文件,他們的差異主要有以下的幾個面向

    (1)載入順序區別

    bootstrap設定檔是比application設定檔優先載入的,因為bootstrap是由spring父上下文加載,而application是由子上下文載入

    (2)優先權差異

    bootstrap載入的設定資訊是不能被application的相同設定覆蓋的,如果兩個設定檔同時存在,也是以bootstrap為主

    (3)應用場景區別bootstrap常見應用場景

    1.配置一些固定的,不能被覆寫的屬性.用於一些系統層級的參數配置

    本地的設定檔是預設不能覆蓋遠端的配置的

    2.一些需要加密/解密的場景

    3.當你使用了Spring Cloud Config配置中心時,這時需要在boostrap設定檔中新增連接到設定中心的配置屬性來載入外部配置中心的設定訊息,專業翻譯如下

    SpringBoot之bootstrap和application的差別是什麼

    #application常見應用場景

    1.常用於SpringBoot項目的自動化配置

    2.用於一些應用層級的參數配置

    在大部分情況下不用區分這兩種情況,只需要使用application即可,效果基本上是一致的

    SpringBoot設定優先權(bootstrap和application)

    bootstrap和application的差別

    • bootstrap.yml 先於application.yml。

    • 在 ApplicationContext 引導階段,可以使用 bootstrap.yml。 Spring應用程式上下文是由父上下文ApplicationContext載入的。定義系統層級的參數配置,這些參數一般不會變動。

    • application.yml 用來定義應用層級的參數配置。搭配 spring-cloud-config 使用時 application.yml 定義的參數可以實現動態替換。

    • application.yml 會覆寫 bootstrap.yml 的參數配置。

    springboot的設定優先權

    由里向外,外層覆蓋裡層。

    命令列參數> 作業系統環境變數> 應用外的設定檔> 應用程式內的設定檔

    加入springcloud配置中心後

    設定中心>命令列參數> 本地application.yml > 本地bootstrap.yml

    設定允許覆蓋:

    spring:
      cloud:
        config:
          allowOverride: true
          overrideNone: true
          overrideSystemProperties: false

    以上是SpringBoot之bootstrap和application的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    陳述:
    本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除