我可以在$ inside内嵌#来访问spring xml文件中的环境变量和属性变量吗?

时间:2016-11-04 18:34:15

标签: xml spring spring-el

我在VM中定义了一个环境变量,-Denvironment = dev。我可以通过使用SpEl,#{systemProperties ['environment']}来获取此变量。同时我有一个属性变量dev.anything = someValue,在属性文件中定义。我可以使用$ {dev.anything}来访问它。但是,$ {#{systemProperties ['environment']}。anything}只是给了我dev.anything而不是期望值someValue。

1 个答案:

答案 0 :(得分:0)

您可以将属性占位符放在SpEL中,反之亦然,或者只使用属性占位符。

${${environment}.anything}}将有效 -

@Value("${${bar}.foo}") 
String foo;` 

-Dbar=x -Dx.foo=y

导致foo包含y

这也有效....

@Value("#{systemProperties['${bar}' + '.foo']}")
String bar;