Подтвердить что ты не робот

Есть ли какой-либо синтаксис, например: # {systemProperties ['environment_variable_name']}, чтобы получить системную переменную?

Использует ли # {systemProperties ['environment']} в файле applicationcontext.xml Spring значение, связанное с окружающей средой?

Или можно ли указать значение системной переменной в файле Spring applicationcontext.xml.

4b9b3361

Ответ 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}"/>)

Ответ 2

Один из способов сделать это - использовать PropertyPlaceholderConfigurer, который можно настроить для использования свойств системы.

Я также заметил, что запись Spring 3.1 M1 рассказывает о новых материалах для доступа к информации о конфигурации из "среды". Конечно, это только веха... не выпуск готовой продукции.