拆分不适用于AbstractEnvironment.getProperty

时间:2019-07-30 16:10:06

标签: spring spring-boot application.properties

我的application.properties文件中具有以下属性。

test.product.release.version=2003.1

test.product.release.year=#{'${test.product.release.version}'.split('[.]')[0]

当我在我的弹簧控制器中使用test.product.release.year注释使用属性@Value时,它给我的价值是2003,但是当我通过AbstractEnvironment#getProperty得到它的价值时,我就得到了价值

#{'${test.product.release.version}'.split('[.]')[0]

如何使用AbstractEnvironment获得值2003?

1 个答案:

答案 0 :(得分:1)

不,您不能在属性文件中使用SpEL。

  

Finally, while you can write a SpEL expression in @Value, such expressions are not processed from Application property files.

不过,您可以在属性文件中use placeholders,例如:

app.name=MyApp
app.description=${app.name} is a Spring Boot application

对于您的用例,您应该查看profile-specific configuration机制。

允许您根据环境配置文件加载不同的配置。