【问题标题】:Split doesn't work with AbstractEnvironment.getProperty拆分不适用于 AbstractEnvironment.getProperty
【发布时间】:2019-12-08 02:15:14
【问题描述】:

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

test.product.release.version=2003.1

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

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

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

如何使用 AbstractEnvironment 获取值 2003?

【问题讨论】:

标签: spring spring-boot application.properties


【解决方案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 机制。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多