您有两个不同的消息包。如何将它们直接注入spring bean MessageSource
?
以下不起作用:
@Resource(name = "${messages_one_EB.properties}")
private MessageSource messageSourceOne;
@Resource(name = "${messages_two_EN.properties}")
private MessageSource messageSourceTwo;
结果:java.lang.IllegalArgumentException: Could not resolve placeholder 'messages_one_EB.properties'
可能它的工作方式类似,但如何?我在文档中找不到任何示例。
这两个捆绑包都放在src/main/resources/
答案 0 :(得分:2)
我猜你可以为你的消息源声明2个不同的bean,然后按名称注入它们:
@Bean
public MessageSource messageSource1() {
final ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("classpath:i18n/messages1");
messageSource.setFallbackToSystemLocale(false);
messageSource.setCacheSeconds(0);
return messageSource;
}
@Bean
public MessageSource messageSource2() {
final ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("classpath:i18n/messages2");
messageSource.setFallbackToSystemLocale(false);
messageSource.setCacheSeconds(0);
return messageSource;
}
然后在你的课堂上:
@Resource(name = "messageSource1")
private MessageSource messageSourceOne;
@Resource(name = "messageSource2")
private MessageSource messageSourceTwo;