Ответ 1
Когда я правильно помню, есть разница между:
Вы можете получить доступ к свойствам системы по-разному:
-
#{systemProperties['databaseName']}
-
#{systemProperties.databaseName}
-
${databaseName}
//$вместо #!!
<ы > С #{systemProperties['databaseName']}
у вас есть доступ к свойствам системной системы.
С #{systemProperties.databaseName}
у вас есть доступ к свойствам системы, которые, например, читаются из командной строки (-DdatabaseName="testDB"
).
С >
С ${databaseName}
у вас есть доступ к свойствам из загруженных файлов свойств и предоставлен, например, PropertyPlaceholderConfigurer и к системе prooperties too
@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}"/>
)