我有一个Spring Boot项目,我正在通过application.yml
向application.properties
注入值(这种设计对我来说很有意义,因为有很多微服务,而application.properties
实际上是一个符号链接):
在application.properties
中:
PROPERTY_YAML=something
,然后在application.yml
中:
app:
property:
yaml: ${PROPERTY_YAML}
这很好用,当我通过Environment.getProperty
或@Value
访问它时,一切正常。
但是,当我尝试以相同方式设置Spring Profile时,它不起作用。将SPR_PROFILE=my_profile
和application.properties
中的application.yml
设置为
spring:
profiles:
active: ${SPR_PROFILE}
当Environment.activeProfiles
返回${SPR_PROFILE}
(并且spring在此配置文件下运行)并且属性Environment.getProperty("spring.profiles.active")
返回my_profile
时,导致春季不一致。
这是预期的行为吗?这是为什么?在实际解析/替换占位符之前,弹簧载荷轮廓是否存在?
我当前的解决方法是在spring.profiles.active=my_profile
中设置application.properties
,但我想知道为什么春天会那样。