簡體   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