我必须以编程方式创建不同的messageSource并将它们放在Bean中,以便在需要时使用正确的。
应用程序必须为每个客户都有一个messageSource,所以我创建了一个Configuration类
companyMessageSource
通过这种方式,我们为每个公司提供了默认的messageSource和一个特定的messageSource。
我们的想法是将这个特定的messageSources放入Map中,然后在需要时从地图中访问正确的messageSources。
问题是select 'Name Gender Age ...';
应该是一个bean,但我无法将参数传递给bean,我如何动态访问正确的源?
答案 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"));
}
}
希望这有帮助。