从 Spring 引导中的默认配置文件 yml 中删除密钥

Remove key from default profile yml in Spring Boot

我有一个 Spring 引导 application.yml 文件结构如下:

mapValues:
    key1: value1
    key2: value2

现在我想 运行 另一个配置文件中的应用程序,其中那些 key/value 应该用 application-profile.yml 中的不同键替换为:

mapValues:
    key3: value3
    key4: value4

Spring 似乎自动合并了这两个 yml 配置文件并且应用程序看到:

mapValues:
    key1: value1
    key2: value2
    key3: value3
    key4: value4

我不想保留 key1key,而是只保留 key3key4。如何实现?

您在 application.yml 文件中指定的内容默认为所有配置文件。如果要分离属性,请创建多个 yml 文件,例如 application-dev.yml 和 application-test.yml 并明确指定配置文件,如下所示(通常在 bootstrap.yml)

spring:
  profiles:
    active: test

设置上述配置文件后,您的应用将只能看到 application.yml 和 application-test.yml 文件中的属性。 application-dev.yml 中的属性将不可用。