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

Lan*_*dei 3 java configuration spring

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

<bean id="messageSource" class="MyResourceBundleMessageSource">
    <property name="resources" value="classpath*:messages/*.properties" />
</bean>
Run Code Online (Sandbox Code Playgroud)

相应的类看起来像:

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

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

Lan*_*dei 7

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

@Bean
public MyResourceBundleMessageSource messageSource() throws IOException {
    MyResourceBundleMessageSource messageSource = new MyResourceBundleMessageSource();
    messageSource.setResources(new PathMatchingResourcePatternResolver().getResources("classpath*:messages/*.properties"));
    return messageSource;
}
Run Code Online (Sandbox Code Playgroud)