Spring boot Spring Boot@ConfigurationProperties中的占位符

Spring boot Spring Boot@ConfigurationProperties中的占位符,spring-boot,Spring Boot,您知道Spring Boot是否支持@ConfigurationProperties中的占位符吗? 当我设置spring.boot.admin.client.serviceUrl=http://${server.address}:${server.port}${server.context path}时,它将被绑定到,但spring-boot不会替换占位符 我在文档中没有找到任何关于此的信息。我在@ConfigurationProperties的javadoc中找到: 请注意,与{@code@

您知道Spring Boot是否支持
@ConfigurationProperties
中的占位符吗? 当我设置
spring.boot.admin.client.serviceUrl=http://${server.address}:${server.port}${server.context path}
时,它将被绑定到,但spring-boot不会替换占位符


我在文档中没有找到任何关于此的信息。

我在@ConfigurationProperties的javadoc中找到:

  • 请注意,与{@code@Value}相反,由于属性值是外部化的,所以不会对SpEL表达式求值
这就解释了为什么你只能得到原始值。
看到这一点我真的很惊讶。

您使用的是哪个Spring Boot版本?这是在1.2.0中修复的。我刚刚在1.2.6中测试了它,占位符甚至在使用自定义位置时也被解析:@ConfigurationProperties(prefix=“props”,locations=“classpath:example.properties”)我使用SpringBoot 1.2.5。据我所知,为了提供这种行为,我必须定义位置属性。当我另外使用Spring Cloud Config时,我应该如何定义位置?使用{…}的SpEl和使用${…}的属性占位符是两件不同的事情,所以这并不能回答问题。