天天看點

Spring cloud配置用戶端(二)

Bootstrap配置屬性

  • 調整Bootstrap配置檔案路徑
  • 覆寫遠端配置檔案屬性
  • 自定義Bootstrap配置
  • 自定義Bootstrap配置屬性源

Bootstrap配置

參考BootstrapApplicationListener實作

Bootstrap配置檔案

String configName = environment.resolvePlaceholders("${spring.cloud.bootstrap.name:bootstrap}");           

當spring.cloud.bootstrap.name存在時,使用該配置,否則,使用“bootstrap”作為預設。

## application.properties
##通過調整 spring.cloud.bootstrap.enabled=false,嘗試關閉bootstrap上下文
##實際測試結果,沒有效果
spring.cloud.bootstrap.enabled=false
##關閉env安全
endpoints.env.sensitive=false           

注意:BootstrapApplicationListener加載實際早于configFileApplicationListener

原因是:

ConfigFileApplicationListener的Order= Ordered.HIGHEST_PRECEDENCE+10(第十一位)           
BootstrapApplicationListener的Order = Ordered.HIGHEST_PRECEDENCE+5(第六位)           

如果需要調整控制Bootstrap上下文行為配置,需要更高優先級,也就是說Order需要小于Ordered.HIGHEST_PRECEDENCE+5(越小越優先),比如使用程式啟動參數:

--spring.cloud.bootstrap.enabld = true           

調整Bootstrap配置

調整程式啟動參數

--spring.cloud.bootstrap.name=spring-cloud           

bootstrap配置檔案名稱發生了改變“spring-cloud”,意味着有三個檔案:

  • application.properties
    • spring.application.name=spring-cloud-config-client
  • bootstrap.properties
    • spring.application.name=spring-cloud-config-client-demo
  • spring-cloud.properties
    • spring.application.name=spring-cloud

      運作結果(部分):

      Spring cloud配置用戶端(二)

保留配置檔案名稱 程式啟動參數:

--spring.cloud.bootstrap.name=spring-cloud           

調整bootstrap配置檔案路徑啟動參數:

--spring.cloud.bootstrap.location=config           

現有四個檔案:

  • config/spring-cloud.properties 放在resources/config檔案夾下
    • spring.application.name=spring-cloud-2

      實際結果

Spring cloud配置用戶端(二)