在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