4

我正在将我们的 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 类(因为它实际上位于一个公共库中)。

4

1 回答 1

8

遵循 Sotirios Delimanolis 的建议,我得到了它的工作:

@Bean
public MyResourceBundleMessageSource messageSource() throws IOException {
    MyResourceBundleMessageSource messageSource = new MyResourceBundleMessageSource();
    messageSource.setResources(new PathMatchingResourcePatternResolver().getResources("classpath*:messages/*.properties"));
    return messageSource;
}
于 2013-10-08T15:34:41.047 回答