【发布时间】:2015-01-30 15:30:04
【问题描述】:
我想知道是否有办法以 Properties 实例的形式从 Spring Environment 中提取属性(例如从 ApplicationContext 中获取)?或者,至少,有没有办法枚举 Spring Environment 中的属性,或者将它们全部作为地图获取,或者我可以将 [最初未知的] 一组属性转换为 Properties 对象的任何其他方式?
我需要这个来通过调用org.jclouds.ContextBuilder.newBuilder() 和.overrides(Properties) 创建一个jclouds Context。这个想法是仅通过 .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 文件。我想实现以下目标:
- 仅在此 XML 定义文件中保留 .properties 文件及其可能位置的列表;
- 允许将 jclouds 相关属性放置在 XML 中提到的 任何 .properties 文件中;
- 以 Properties 对象的形式访问由 Spring 解析和加载的属性,以便我能够将其提供给 jclouds
ContextBuilder。
如果所有这些都可行,请告诉我。提前谢谢!
-弗拉德
【问题讨论】:
标签: java spring spring-environment