繁体   English   中英

如何用Spring注入MessageSource资源包?

[英]How to inject MessageSource resource bundle with Spring?

嗨,您有两个不同的消息束。 如何将它们直接注入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/

我猜您可以为消息源声明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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM