在Sping Boot 3中迁移到spring.config.activate.on-profile

tv6aics1  于 2023-11-16  发布在  Spring
关注(0)|答案(1)|浏览(144)

我正在将一个旧的Sping Boot 应用程序从2.3.5.RELEASE迁移到版本3.1.2,并尝试更新一个使用配置文件格式的模块,以与Spring Boot 2.4中引入的新配置文件激活机制保持一致。以前,我使用spring.profiles根据活动配置文件激活不同的配置。但是,在新版本中,Spring.config.activate.on-profile似乎是推荐的方法。
下面是我的原始配置文件(src/test/resources/example/auto-loaded/config-file.yaml)的一段摘录:

auto-loaded:
  yaml-config-file:
    yaml-config-file-property: default value

---
spring:
  profiles: some-env

auto-loaded:
  yaml-config-file:
    yaml-config-file-property: value for some-env

---
spring:
  profiles: some-other-env

auto-loaded:
  yaml-config-file:
    yaml-config-file-property: value for some-other-env
    some-other-env-property: expected not to be loaded

字符串
我尝试将其迁移到新格式,如下所示:

auto-loaded:
  yaml-config-file:
    yaml-config-file-property: default value

---
spring:
  config:
    activate:
      on-profile: some-env

auto-loaded:
  yaml-config-file:
    yaml-config-file-property: value for some-env

---
spring:
  config:
    activate:
      on-profile: some-other-env

auto-loaded:
  yaml-config-file:
    yaml-config-file-property: value for some-other-env
    some-other-env-property: expected not to be loaded


更新配置文件后,在激活配置文件some-env和some-other-env时,我没有看到预期的行为。这些属性似乎没有像迁移前那样被加载或覆盖。
以下是我的问题:
根据Sping Boot 3中的新配置文件激活机制,我更新的配置文件格式是否正确?是否需要其他步骤来确保正确加载和应用特定于配置文件的配置?更多详细信息可在此处https://github.com/negadras/config-properties(测试类DefaultConfigLoaderTest和DefaultConfigLoaderWithProfileTest)找到

ruoxqz4g

ruoxqz4g1#

在这种情况下,您应该使用

spring:
  profiles:
    active: some-env

字符串
您可以在文档中找到有关它的详细信息
关于

spring:
  config:
    activate:
      on-profile: some-env


此外,文档中描述了您需要的所有内容(可用于将配置文件段标记为特定于概要文件)。

相关问题