跳到主要内容

属性覆盖

DeepSeek V3 中英对照 Property Overrides

Config Server 提供了一个“overrides”功能,允许操作员为所有应用程序提供配置属性。被覆盖的属性无法通过常规的 Spring Boot 钩子被应用程序意外更改。要声明覆盖属性,请将名称-值对的映射添加到 spring.cloud.config.server.overrides 中,如下例所示:

spring:
cloud:
config:
server:
overrides:
foo: bar
yaml

前面的示例会导致所有配置客户端应用程序读取 foo=bar,而不依赖于它们自己的配置。

备注

配置系统无法强制应用程序以任何特定方式使用配置数据。因此,重写是不可强制执行的。然而,它们确实为 Spring Cloud Config 客户端提供了有用的默认行为。

提示

通常情况下,Spring 环境占位符 ${} 可以通过使用反斜杠 (\) 来转义 ${(并在客户端解析)。例如,\${app.foo:bar} 解析为 bar,除非应用程序提供了自己的 app.foo

备注

在 YAML 中,你不需要对反斜杠本身进行转义。然而,在属性文件中,当你在服务器上配置覆盖时,确实需要对反斜杠进行转义。

你可以通过在远程仓库中设置 spring.cloud.config.overrideNone=true 标志(默认值为 false),将所有覆盖项的优先级更改为更像默认值,从而允许应用程序通过环境变量或系统属性提供自己的值。