2016-11-04 29 views
0

我已經在VM中定義了一個環境變量,-Denvironment = dev。我可以通過使用SpEl,#{systemProperties ['environment']}來獲得這個變量。同時我有一個屬性變量,dev.anything = someValue,在屬性文件中定義。我可以通過使用$ {dev.anything}來訪問它。但是,$ {#{systemProperties ['environment']}。anything}只是給了我dev.anything,而不是期望值someValue。

+0

嘗試'$ {#{systemProperties [ '環境']} + '.anything'}' – usha

回答

0

您可以將屬性佔位符放入SpEL中,反之亦然,或者只是使用屬性佔位符。

${${environment}.anything}}將工作 -

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

-Dbar=x -Dx.foo=y

導致富含y

這工作太....

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

感謝加里。我認爲你的解決方案有效。但是,我只是改變了我的設計,例如將屬性分割爲不同的文件,dev.properties,it.properties,prod.properties等等。因此,PropertyPlaceHolderConfigurer更改爲 classpath:/ proprty/$ {environment:dev} .properties。 –

+0

是的,這也會起作用。 –

相關問題