SpringCloudConfig環境庫

it芒果發表於2018-08-03

您要在哪裡儲存配置伺服器的配置資料?管理此行為的策略是EnvironmentRepository,服務於Environment物件。此Environment是Spring Environment(包括propertySources作為主要功能)的域的淺層副本。Environment資源由三個變數引數化:

{application}對映到客戶端的“spring.application.name”;

{profile}對映到客戶端上的“spring.profiles.active”(逗號分隔列表); 和

{label}這是一個伺服器端功能,標記“版本”的配置檔案集。

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

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

bootstrap.yml

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

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

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


相關文章