我习惯于使用 ${...}
从 .yml 文件中引用另一个属性。
所以我有 Spring Boot v2.3.0.RELEASE 和以下 .yml:
env: dev
spring:
profiles:
active: ${env}
但不幸的是,当运行我的应用程序时,我看到
The following profiles are active: ${env}
尽管这个占位符在其他属性中完美工作,例如我定义为的 kafka 主题
topic: ${env}.topic_name
我可以在日志中看到它已正确解决
Kafka producer topic=dev.topi_name
似乎 spring.profiles.active
是此规则的某种异常(exception),但我找不到原因。我怎样才能得到相同的结果(配置文件取决于其他属性变量),没有环境变量,外部键,代码中的设置等?
最佳答案
此问题已在 Spring Boot 2.4.0 中作为更新的配置文件处理的一部分得到修复(更多信息请参见 2.4.0 release notes)。
如果有兴趣,您可以使用新属性 spring.config.use-legacy-processing
来查看 spring.profiles.active
处理方式的差异。
关于java - Spring Boot 无法解析 yaml 中 spring.profiles.active 属性的属性占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65005635/