属性覆盖
Config Server 提供了一个“overrides”功能,允许操作员为所有应用程序提供配置属性。被覆盖的属性无法通过常规的 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),将所有覆盖项的优先级更改为更像默认值,从而允许应用程序通过环境变量或系统属性提供自己的值。