读取目录中的所有属性文件

时间:2013-12-22 19:22:21

标签: java spring properties-file

现在我正在春天阅读属性文件

<bean id="messageSource"
    class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basename" value="customer/messages" />
</bean>

这里我指定在客户目录中读取messages.properties。但我想要做的是指定一个目录并让spring读取该目录中的所有属性文件。我怎样才能做到这一点?

我尝试了value =“customer / *”,但它不起作用。

2 个答案:

答案 0 :(得分:4)

更推荐使用<context:property-placeholder>

<context:property-placeholder 
    locations="classpath:path/to/customer/*.properties" />

您也可以使用Spring 3.1+ Java Config执行此操作:

@Bean
public static PropertyPlaceholderConfigurer properties(){
  PropertyPlaceholderConfigurer ppc = new PropertyPlaceholderConfigurer();
  Resource[] resources = new ClassPathResource[ ]
    { new ClassPathResource( "path/to/customer/*.properties" ) };
  ppc.setLocations( resources );
  ppc.setIgnoreUnresolvablePlaceholders( true );
  return ppc;
}

您可能需要定制资源类型以从以下位置加载属性:

要使用属性,可以使用Environment抽象。它可以注入并用于在运行时检索属性值。

答案 1 :(得分:1)