我不知道是否有方法从属性实例的形式从Spring环境中提取属性(例如从ApplicationContext获取)?或者,至少有没有办法在Spring Environment中枚举属性,或者将它们全部作为地图,或者我可以将[最初未知]属性集合转换为Properties对象的任何其他方式?获取弹簧环境作为属性
我需要此功能才能创建jclouds Context
,请致电org.jclouds.ContextBuilder.newBuilder()
和.overrides(Properties)
。我们的想法是仅通过.properties文件配置实际的云提供程序,而我不希望将应用程序逻辑与提供程序特定的属性相耦合。
[UPDATE]
要使用利用<context:property-placeholder>
被配置.properties文件,它实际上指定的路径的列表,这样的:
< 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定义文件中;
- 允许在XML中提到的.properties文件的任何中放置与jcloud相关的属性;
- 以Properties对象的形式访问由Spring解析和加载的属性,所以我可以将它提供给jclouds
ContextBuilder
。
请让我知道,如果这一切都是可行的。先谢谢你!
-Vlad
为什么这么“复杂”。您可以简单地使用' '来读取属性,这些属性又可以被注入到' '元素中。保存你加载文件两次。 –
2014-12-02 12:09:04
Deinum,你说得对,但那只能从Spring管理的bean中工作。由于OP似乎是自己创建这个对象(newBuilder()),所以这是行不通的。 – 2014-12-02 12:13:51
他需要那些应该注入的属性,他们如何阅读应该无关紧要。阅读应该是,imho,外化。 – 2014-12-02 12:14:47