Spring Boot 中application.yml與bootstrap.yml的區別 深入理解SpringCloud之引導程序應用上下文

SpringBoot默認支持properties(.properties)和YAML(.yml  .yaml )兩種格式的配置文件

1.加載順序

若application.yml 和bootStrap.yml 在同一目錄下 :bootstrap.yml先加載  application.yml後加載

bootstrap.yml 用於應用程序上下文的引導階段。bootstrap.yml 由父Spring ApplicationContext加載。

父ApplicationContext 被加載到使用 application.yml 的之前。

如果resource裏面同時有application.properties 和 application.yml,且存在相同的配置,則application.properties會覆蓋application.yml裏面的屬性,因爲application.properties 會後加載,也就是說哪個文件被最後加載,哪個才具有最高級。(application會覆蓋bootstrap中的非引導配置)

2.配置區別
bootstrap.yml 和application.yml 都可以用來配置參數。

bootstrap.yml 用來程序引導時執行,應用於更加早期配置信息讀取. 可以理解成系統級別的一些參數配置,這些參數一般是不會變動的。

application.yml 可以用來定義應用級別的, 應用程序特有配置信息,可以用來配置後續各個模塊中需使用的公共參數等.如果加載的application.yml的內容標籤與bootstrap的標籤一致,application會覆蓋bootstrap, 而application.yml 裏面的內容可以動態替換。

3. 典型的應用場景如下:

  • 當使用 Spring Cloud Config Server 的時候,你應該在 bootstrap.yml 裏面指定 spring.application.name 和 spring.cloud.config.server.git.uri
  • 和一些加密/解密的信息

官網文檔地址:https://cloud.spring.io/spring-cloud-static/Dalston.SR5/single/spring-cloud.html#_the_bootstrap_application_context

爲何需要把 config server 的信息放在 bootstrap.yml 裏?

當使用 Spring Cloud 的時候,配置信息一般是從 config server 加載的,爲了取得配置信息(比如密碼等),你需要一些提早的或引導配置。因此,把 config server 信息放在 bootstrap.yml,用來加載真正需要的配置信息。

深入理解SpringCloud之引導程序應用上下文

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章