環境倉庫

您應該將配置資料儲存在 Config Server 的何處?管理此行為的策略是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}引數的配置中載入配置檔案。配置檔案的優先順序規則也與常規 Spring Boot 應用程式相同:活動配置檔案優先於預設值,如果有多個配置檔案,則最後一個生效(類似於向Map新增條目)。

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

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

(與 Spring Boot 應用程式一樣,這些屬性也可以透過環境變數或命令列引數設定)。

如果倉庫是基於檔案的,伺服器會從application.yml(所有客戶端共享)和foo.ymlfoo.yml優先)建立Environment。如果 YAML 檔案中包含指向 Spring 配置檔案的文件,則這些配置檔案將以更高的優先順序應用(按列出的配置檔案順序)。如果有特定於配置檔案的 YAML(或屬性)檔案,這些檔案也以比預設值更高的優先順序應用。更高的優先順序意味著PropertySourceEnvironment中列出得更早。(這些規則在獨立的 Spring Boot 應用程式中也適用。)

您可以將spring.cloud.config.server.accept-empty設定為false,這樣如果找不到應用程式,伺服器將返回 HTTP 404 狀態。預設情況下,此標誌設定為true

您不能將spring.main.*屬性放置在遠端EnvironmentRepository中。這些屬性在應用程式初始化過程中使用。
© . This site is unofficial and not affiliated with VMware.