Интересно, есть ли способ извлечь свойства из Spring Environment (например, полученные из ApplicationContext) в форме экземпляра Properties? Или, по крайней мере, есть способ перечислить свойства в Spring Environment или получить их все как карту или каким-либо другим способом я могу превратить [первоначально неизвестный] набор свойств в объект Properties?Get Spring Environment as Properties
Мне нужно это, чтобы создать jclouds Context
по телефону org.jclouds.ContextBuilder.newBuilder()
и .overrides(Properties)
. Идея состоит в том, чтобы настроить фактического поставщика облака исключительно с помощью файла .properties, и я не хочу связывать логику приложения с конкретными свойствами поставщика.
[UPDATE]
В .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
.
Пожалуйста, дайте мне знать, если все это выполнимо. Заранее спасибо!
-Vlad
Почему так «сложный».Вы можете просто использовать ' ' для чтения свойств, которые, в свою очередь, также могут быть введены в элемент ' '. Сохраняет загрузку файла дважды. –
Deinum, вы правы, но это будет работать только из управляемых фасолей Spring. Поскольку OP, похоже, сам создает этот объект (newBuilder()), это не сработает. –
Ему нужны свойства, которые следует вводить, как они читаются, не имеет значения. Чтение должно быть, imho, экстернализировано. –