在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}"/>)中使用所有它们。

    09-12 10:35