SPRING - 以编程方式创建MessageSources并将它们用作bean

时间:2018-01-07 14:51:30

标签: java spring

我必须以编程方式创建不同的messageSource并将它们放在Bean中,以便在需要时使用正确的。

应用程序必须为每个客户都有一个messageSource,所以我创建了一个Configuration类

companyMessageSource

通过这种方式,我们为每个公司提供了默认的messageSource和一个特定的messageSource。 我们的想法是将这个特定的messageSources放入Map中,然后在需要时从地图中访问正确的messageSources。 问题是select 'Name Gender Age ...'; 应该是一个bean,但我无法将参数传递给bean,我如何动态访问正确的源?

1 个答案:

答案 0 :(得分:1)

我不完全确定我理解你想如何使用创建的bean,但是获取MessageSource的注册单例的一种方法是以编程方式获取它们:

@Service
public class CompanyService {

    @Autowired
    private ApplicationContext applicationContext;

    public void useCompanySpecificMessageSource(Company c) {
        MessageSource ms = applicationContext.getBean(c.getSlug() + "_messageSource");
        log.debug(ms.getMessage("code", null, new Locale("en", "GB"));
    }
}

希望这有帮助。