属性覆盖

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