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
处理方式的差异。将日志记录级别设置为跟踪,并查看和粘贴输出。也许春天会暗示它为什么拒绝:)