Интересно, есть ли способ извлечь свойства из Spring Environment (например, полученные из ApplicationContext) в виде экземпляра свойств? Или, по крайней мере, есть ли способ перечислить свойства в Spring Environment, или получить их все в виде карты, или каким-либо другим способом превратить [изначально неизвестный] набор свойств в объект Properties?
Мне нужно это, чтобы создать jclouds Context
, вызвав org.jclouds.ContextBuilder.newBuilder()
и .overrides(Properties)
. Идея состоит в том, чтобы настроить фактического облачного провайдера исключительно с помощью файла .properties, и я не хочу связывать логику приложения со свойствами, специфичными для провайдера.
[ОБНОВЛЕНИЕ]
Используемые файлы .properties настраиваются с помощью <context:property-placeholder>
, и на самом деле он указывает список путей, например:
< context:property-placeholder location=
"classpath:/jdbc.properties,
file:${jboss.server.config.dir}/jdbc.properties,
file:${catalina.home}/conf/jdbc.properties"
ignore-resource-not-found="true"/>
что предполагает, что файл .properties ищется в упомянутом списке местоположений по порядку. Я хотел бы добиться следующего:
- сохранить список файлов .properties и их возможное расположение только в этом XML-файле определения;
- разрешить размещать свойства, связанные с jclouds, в любой из файлов .properties, упомянутых в XML;
- получить доступ к свойствам, разрешенным и загруженным Spring, в виде объекта Properties, поэтому я могу передать это jclouds
ContextBuilder
.
Пожалуйста, дайте мне знать, если все это осуществимо. Заранее спасибо!
-Влад