|
此版本仍在开发中,目前尚不稳定。如需最新稳定版本,请使用 Spring Cloud Config 5.0.1! |
属性覆盖
配置服务器具有一个“覆盖”功能,允许操作员为所有应用程序提供配置属性。
被覆盖的属性无法通过常规 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 中,您无需转义反斜杠本身。</p><p>然而,在属性文件中,当您在服务器上配置覆盖项时,需要转义反斜杠。 |
您可以将客户端中所有覆盖项的优先级更改为更接近默认值,从而使应用程序能够通过环境变量或系统属性提供自己的值,方法是在远程仓库中设置 spring.cloud.config.overrideNone=true 标志(默认值为 false)。