spring-cloud-config-server——Environment Repository

null^發表於2017-12-05

參考資料:

  https://cloud.spring.io/spring-cloud-static/spring-cloud-config/1.4.0.RELEASE/single/spring-cloud-config.html

  http://cloud.spring.io/spring-cloud-static/Camden.SR7/#_environment_repository

Environment Repository——環境庫

  你要在哪裡儲存Config Server的配置資料呢?管理這種行為的策略是為Enviroment物件提供服務的EnvironmentRepository。這個Enviroment是Spring Environment域的一個淺層副本(包括propertySources作為主要功能)。Environment資源由三個變數引數化:

  1. {application} maps to "spring.application.name" on the client side;——{application}對映到客戶端的"spring.application.name";
  2. {profile} maps to "spring.profiles.active" on the client (comma separated list);——{profile}對映到客戶端的 "spring.profiles.active"(逗號分割列表);
  3. {label} which is a server side feature labelling a "versioned" set of config files.——{label}是服務端功能,標記"版本化"的配置檔案集。

  版本庫實現通常像Spring Boot應用程式一樣從“spring.config.name”載入配置檔案,等同於{application}引數,而“spring.profiles.active”等同於{profiles}引數。配置檔案的優先順序規則也與常規的Boot應用程式中的規則相同:活動配置檔案優先於預設配置,並且如果有多個配置檔案,則最後一個配置檔案將勝出(如向Map新增條目)。

  例如,客戶端應用程式具有此引導配置:

  bootstrap.yml

spring:
  application:
    name: foo
  profiles:
    active: dev,mysql

  (通常使用Spring Boot應用程式,這些屬性也可以設定為環境變數或命令列引數)

  如果儲存庫是基於檔案的,則伺服器將從application.yml(所有客戶端之間共享)和foo.yml(以yoo.yml優先)建立一個Environment。如果YAML檔案中有指向Spring配置檔案的文件,那麼這些檔案將以更高的優先順序(按列出的配置檔案的順序)應用,如果有特定於配置檔案的YAML(或屬性)檔案,則這些檔案的優先順序高於預設值。較高的優先順序轉換為Environment之前列出的PropertySource.(這些規則於獨立的Spring Boot應用程式相同)。

相關文章