屬性覆蓋

Config Server 具有一個“覆蓋”功能,允許操作員為所有應用程式提供配置屬性。覆蓋的屬性不能被應用程式透過正常的 Spring Boot 鉤子意外地更改。 要宣告覆蓋,請將名稱-值對的對映新增到 spring.cloud.config.server.overrides,如以下示例所示

spring:
  cloud:
    config:
      server:
        overrides:
          foo: bar

前面的示例導致所有配置客戶端應用程式都讀取 foo=bar,而與其自身的配置無關。

配置系統不能強制應用程式以任何特定方式使用配置資料。 因此,覆蓋是不可強制執行的。 但是,它們確實為 Spring Cloud Config 客戶端提供了有用的預設行為。
通常,可以使用反斜槓 (\) 轉義 ${ 來轉義(並在客戶端上解析)帶有 ${} 的 Spring 環境佔位符。 例如,\${app.foo:bar} 解析為 bar,除非應用程式提供自己的 app.foo
在 YAML 中,你不需要轉義反斜槓本身。 但是,在屬性檔案中,當你在伺服器上配置覆蓋時,你需要轉義反斜槓。

你可以透過在遠端倉庫中設定 spring.cloud.config.overrideNone=true 標誌(預設值為 false),更改客戶端中所有覆蓋的優先順序,使其更像預設值,從而讓應用程式在環境變數或系統屬性中提供自己的值。