在Spring的applicationcontext.xml文件中使用#{systemProperties ['environment']}是否返回与环境关联的值?
或者有什么方法可以在spring applicationcontext.xml文件中生成系统变量值。
最佳答案
当我没记错的时候,两者之间是有区别的:
您可以通过不同的方式访问系统属性:
#{systemProperties['databaseName']}
#{systemProperties.databaseName}
${databaseName}
//$代替#!! 使用
#{systemProperties['databaseName']}
,您可以访问system-system-properties。使用
#{systemProperties.databaseName}
,您可以访问例如从命令行读取的系统属性(-DdatabaseName="testDB"
)。使用
${databaseName}
,您可以访问例如由PropertyPlaceholderConfigurer 加载和提供的属性文件中的属性,也可以访问系统属性@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}"/>
)中使用所有它们。