属性覆盖

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),更改客户端中所有覆盖的优先级,使其更像默认值,从而让应用程序在环境变量或系统属性中提供自己的值。