Hi have two different message bundles. How can I directly inject them into a 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'
Probably it works similar, but how? I could not find any example in the docs.
Both bundles are placed under src/main/resources/
I guess you can declare 2 different beans for your message sources and then inject them by name:
@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;
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.