Spring PropertiesFactoryBean通配符扩展无法正常工作

时间:2017-08-12 19:07:35

标签: java spring apache-karaf spring-dm spring-properties

我正在尝试使用PropertiesFactoryBean从某个目录加载以.prop结尾的所有文件。

<bean id="props" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
  <property name="location" value="file:/etc/app/*.prop"/>
</bean>

当以Junit测试运行时,每个工作都正常,org.springframework.core.io.support.PropertiesLoaderSupport#loadProperties获取所有文件的列表(扩展通配符)为FileSystemResource 并加载它们。

但是,当在OS​​GI环境(Karaf)中运行时,PropertiesLoaderSupport#loadProperties会将单个OsgiBundleResource设置为路径设置为/etc/app/*.prop,当然这是无效的。

1 个答案:

答案 0 :(得分:0)

尝试使用locations属性而不是location(仅支持一种资源)

<bean id="props" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
  <property name="locations" value="file:/etc/app/*.prop"/>
</bean>