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