1. 程式人生 > >spring-cloud-config-server——Environment Repository

spring-cloud-config-server——Environment Repository

提供服務 實現 profile 默認 資料 文件的 pos sta 文件

參考資料:

  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應用程序相同)。

spring-cloud-config-server——Environment Repository