屬性覆蓋
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),將客戶端中所有覆蓋的優先順序更改為更像預設值,從而允許應用程式在環境變數或系統屬性中提供自己的值。