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