[英]How to inject MessageSource resource bundle with Spring?
Hi have two different message bundles. 嗨,您有两个不同的消息束。 How can I directly inject them into a spring bean MessageSource
? 如何将它们直接注入Spring bean MessageSource
?
The following does not work: 以下内容不起作用:
@Resource(name = "${messages_one_EB.properties}")
private MessageSource messageSourceOne;
@Resource(name = "${messages_two_EN.properties}")
private MessageSource messageSourceTwo;
Result: java.lang.IllegalArgumentException: Could not resolve placeholder 'messages_one_EB.properties'
结果: java.lang.IllegalArgumentException: Could not resolve placeholder 'messages_one_EB.properties'
Probably it works similar, but how? 可能它的工作原理类似,但是如何? I could not find any example in the docs. 我在文档中找不到任何示例。
Both bundles are placed under src/main/resources/
这两个包都放在src/main/resources/
I guess you can declare 2 different beans for your message sources and then inject them by name: 我猜您可以为消息源声明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;
}
Then in your class: 然后在您的课程中:
@Resource(name = "messageSource1")
private MessageSource messageSourceOne;
@Resource(name = "messageSource2")
private MessageSource messageSourceTwo;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.