Java 弹簧靴不';t在yaml中解析apring.profiles.active属性的属性占位符

Java 弹簧靴不';t在yaml中解析apring.profiles.active属性的属性占位符,java,spring,spring-boot,yaml,spring-profiles,Java,Spring,Spring Boot,Yaml,Spring Profiles,我习惯于使用${…}从.yml文件中引用另一个属性。 因此,我有Spring Boot v2.3.0.RELEASE和以下.yml: env: dev spring: profiles: active: ${env} 但不幸的是,当运行我的应用程序时,我看到 The following profiles are active: ${env} 尽管这个占位符在其他属性(例如,我定义为的卡夫卡主题)中非常有效 topic: ${env}.topic_name 我可以在日志中看到它被

我习惯于使用
${…}
从.yml文件中引用另一个属性。 因此,我有Spring Boot v2.3.0.RELEASE和以下.yml:

env: dev
spring:
  profiles:
    active: ${env}
但不幸的是,当运行我的应用程序时,我看到

The following profiles are active: ${env}
尽管这个占位符在其他属性(例如,我定义为的卡夫卡主题)中非常有效

topic: ${env}.topic_name
我可以在日志中看到它被正确地解决了

Kafka producer topic=dev.topi_name

似乎
spring.profiles.active
是这个规则的一个例外,但我找不到原因。在没有环境变量、外部键、代码设置等的情况下,如何获得与实际相同的结果(配置文件取决于其他属性变量)?

此问题已在Spring Boot 2.4.0中修复,作为更新配置文件处理的一部分(有关详细信息,请参阅)


如果感兴趣,您可以使用新属性
spring.config。使用旧处理
查看
spring.profiles.active
处理方式的差异。

将日志记录级别设置为跟踪,并查看和粘贴输出。也许春天会暗示它为什么拒绝:)