一尘不染

Spring表达式语言(SpEL),带@Value:dollar vs.hash($vs

spring

与何时使用${...}相比,我有点困惑#{...}。Spring的文档仅使用#{...},但是有许多使用示例${...}。此外,当我开始使用SpEL时,我被告知要使用${...}它,并且效果很好。

对于那些感到困惑的人来说,我将如何使用它

@Component
public class ProxyConfiguration {

    @Value("${proxy.host}")
    private String host;
    @Value("${proxy.port}")
    private String port;

    :
}

和一些属性文件:

proxy.host=myproxy.host
proxy.port=8000

我的问题是:

  • 有什么区别或相同?
  • 一个版本被弃用了,所以我应该使用另一个版本吗?

阅读 720

收藏
2020-04-13

共1个答案

一尘不染

${...}是属性占位符语法。它只能用于取消引用属性。

#{...}是SpEL语法,它的功能和复杂性要高得多。它也可以处理财产占位符,以及更多。

两者都是有效的,都不推荐使用。

2020-04-13