在Spring的applicationcontext.xml文件中使用#{systemProperties ['environment']}是否返回與環境相關的值?是否有像這樣的語法:#{systemProperties ['environment_variable_name']}來獲取系統變量?
或者有什麼辦法可以在spring applicationcontext.xml文件中創建系統變量值。
在Spring的applicationcontext.xml文件中使用#{systemProperties ['environment']}是否返回與環境相關的值?是否有像這樣的語法:#{systemProperties ['environment_variable_name']}來獲取系統變量?
或者有什麼辦法可以在spring applicationcontext.xml文件中創建系統變量值。
當我沒記錯的話是有差異之間:
#{systemProperties['databaseName']}
#{systemProperties.databaseName}
${databaseName}
// $代替 # !! 隨着#{systemProperties['databaseName']}
您可以訪問系統中的系統性能。
使用#{systemProperties.databaseName}
您可以訪問例如從命令行(-DdatabaseName="testDB"
)獲得的系統屬性。
隨着${databaseName}
你有從屬性訪問屬性文件加載並PropertyPlaceholderConfigurer 和系統prooperties太
@Value("#{systemProperties['java.version']}")
private String javaVersionMap;
//Dont know how
//@Value("#{systemProperties.javav.version}")
//private String javaVersionDirect;
@Value("${java.version}")
private String javaVersionProp;
//-DcmdParam=helloWorld
@Value("#{systemProperties['cmdParam']}")
private String cmdParamMap;
@Value("#{systemProperties.cmdParam}")
private String cmdParamDirect;
@Value("${cmdParam}")
private String cmdParamProp
可以使用例如設置所有這些文件都在@Value
註釋或config.xml文件(<property name="databaseName" value="#{systemProperties.databaseName}"/>
)
有沒有人知道這兩種不同類型的系統屬性(系統提供的和命令行提供的)的正確名稱? – Ralph 2011-06-09 07:23:00
不存在這樣的事情。命令行版本設置「真實」系統屬性:http://download.oracle.com/javase/6/docs/technotes/tools/windows/java.html#standard。這種差異只存在於Maven中:系統屬性(命令行)vs項目屬性(pom.xml) – 2011-06-09 10:09:04
@Sean Patrick Floyd:我測試了它並且你是對的(它證明我的記錄是錯誤的)。 - 我已經糾正了答案 – Ralph 2011-06-10 06:03:44
做這種事情的一種方法是使用PropertyPlaceholderConfigurer,它可以配置爲使用系統屬性。
我也注意到,Spring 3.1 M1 blog entry談論從「環境」訪問配置信息的新東西。當然,這只是一個里程碑......而不是生產就緒版本。
你是在談論系統屬性或環境變量?這些是兩個不同的東西,你知道...... – 2011-06-09 10:04:46