This question already has answers here:
Spring Expression Language (SpEL) with @Value: dollar vs. hash ($ vs. #)
(4个答案)
7年前关闭。
我具有以下 Spring 配置:
现在在我的类里面,当我使用
根据this问题的答案,
最主要的是
(4个答案)
7年前关闭。
我具有以下 Spring 配置:
<context:property-placeholder location="classpath:commonSql.properties" />
现在在我的类里面,当我使用
@value("#{someproperty}")
时,它不起作用。然后,我改为@value("${someproperty}")
,它起作用了。根据this问题的答案,
@value("#{someproperty}")
是SpEL语法,它的功能和复杂性要高得多。它也可以处理属性(property)占位符,还有很多其他功能,但就我而言,为什么它不起作用?尽管简单的代码正在工作,但是如何同时使用$和#来评估值。最主要的是
@value("#{someproperty}")
工作时@value("${someproperty}")
不工作。 最佳答案
#{ }
是一种表达语言功能,而${ }
是一种简单的属性占位符语法。
表达语言意味着存在特定的语法,对象,变量等。
当您编写“#{someproperty}”时,实际上是指对象和表达式语言引擎会回答您:
这将起作用:
@Value("#{'${someproperty}'}")
10-05 21:09