是否有任何语法:#{systemProperties ['environment_variable_name']}以获取系统变量?


问题内容

在Spring的applicationcontext.xml文件中使用#{systemProperties
[‘environment’]}是否返回与环境关联的值?

或者有什么方法可以在spring applicationcontext.xml文件中生成系统变量值。


问题答案:

当我没记错的时候,两者之间是有区别的:

您可以通过不同的方式访问系统属性:

  • #{systemProperties['databaseName']}
  • #{systemProperties.databaseName}
  • ${databaseName} // $而不是#!!

随着#{systemProperties['databaseName']} 您可以访问系统中的系统性能。

#{systemProperties.databaseName}可以访问readed例如从命令行(系统属性-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}"/>)中使用所有它们。