在基于Java的Spring配置中搜索资源时如何使用通配符?

时间:2013-10-08 14:37:17

标签: java spring configuration

我正在将XML转换为基于Java的Spring 3配置,并且无法找到一种方法来“翻译”使用通配符作为资源路径的bean:

<bean id="messageSource" class="MyResourceBundleMessageSource">
    <property name="resources" value="classpath*:messages/*.properties" />
</bean>

相应的类看起来像:

    public class MyResourceBundleMessageSource 
        extends org.springframework.context.support.ResourceBundleMessageSource {
      ...
      public void setResources(org.springframework.core.io.Resource... resources) 
         throws java.io.IOException { ... }
      ... 
    } 

“手动”枚举所有文件是没有选择的,因为这是一个包含相当多文件的多模块项目,我也想避免更改bean类(因为它实际上位于一个公共库中) )。

1 个答案:

答案 0 :(得分:7)

按照Sotirios Delimanolis的建议,我得到了它的工作:

@Bean
public MyResourceBundleMessageSource messageSource() throws IOException {
    MyResourceBundleMessageSource messageSource = new MyResourceBundleMessageSource();
    messageSource.setResources(new PathMatchingResourcePatternResolver().getResources("classpath*:messages/*.properties"));
    return messageSource;
}
相关问题