多个应用程序上下如何获得每个键的上下文?

时间:2018-02-21 08:15:38

标签: java spring cdi applicationcontext

我在应用程序中升级Spring版本时遇到的问题很少。

在遗留代码中,我们使用BeanFactoryLocator来获取主要上下文(注册表),其中定义了所有其他上下文。在我按名称获取BeanFactoryReference之后。

BeanFactoryLocator beanFactoryLocator = DefaultLocatorFactory.getInstance(k.getSelector() // name of the main context, kind of registry for other contexts);
            BeanFactoryReference factoryRef = beanFactoryLocator.useBeanFactory(k.getFactoryName() // name of the concrete context xml);
            BeanFactory factory = new FactoryWrapper(factoryRef.getFactory(), k.getFactoryName());
return factory;

在Spring 5.0中,没有BeanFactoryLocator,DefaultLocatorFactory对象。我怎么能以另一种方式实现呢?

1 个答案:

答案 0 :(得分:0)

关于使用beanFactoryLocator的过时机制有一个有趣的讨论here,Juergen Hoeller建议使用

  

一个或多个ApplicationContexts的自定义静态持有者类,   用一个对你的用例有意义的东西,并用一个   适当的生命周期。