当前位置: 首页 » 资讯 » 机械 » 正文

在Spring 5中,ContextSingletonBeanFactoryLocator替代

发布日期:2023-09-22 12:02:45     浏览次数:13
核心提示:我们使用的是版本的 spring,我们正在使用ContextSingletonBeanFactoryLocator来加载bean,如下所示 BeanFactoryLocator bfLocator = ("classpath:
我们使用的是版本的 spring,我们正在使用ContextSingletonBeanFactoryLocator来加载bean,如下所示

BeanFactoryLocator bfLocator = ("classpath:");BeanFactoryReference ref = ("sharedApplicationContext");BeanFactory beanFactory = ();((AbstractApplicationContext) beanFactory).getBeanFactory().setBeanClassLoader(());return (ApplicationContext) beanFactory

我们计划升级到spring 并找出ContextSingletonBeanFactoryLocator,并且从Spring 版本中删除类BeanFactoryLocator和BeanFactoryReference之类的类.

那么获取应用程序上下文的建议替代方案是什么?

@Configuration@importResource("classpath:ourxml")public class OurApplicationConfiguration {}public class OurAppicationFactoryProvider { ApplicationContext context; public ApplicationContext getApplicationContext() { if (context == null) { synchronized (this) { if (context == null) { context = new AnnotationConfigApplicationContext(); } } } return context; }}

这是正确的方法还是有其他选择?

在我的遗留应用程序中,它基于 /d/file/img/13/ucmj3wrgyhn / 机制,我添加了一个Singleton类来创建应用程序上下文并使用该上下文.我的代码是

import .ApplicationContext;import .;public enum SpringContextUtil { INSTANCE; ApplicationContext context; public ApplicationContext getApplicationContext() { if (context == null) context = new ClassPathXmlApplicationContext("classpath*:"); return context; }}

我换了

final BeanFactoryReference ref = ().useBeanFactory(contextKey); AbstractApplicationContext context = ((AbstractApplicationContext) ());

通过

AbstractApplicationContext context = (AbstractApplicationContext)().getBean(contextKey);

Hopefull可以帮助我的鞋子.

该解决方案可能不适用于所有情况.

头条分类

免责声明:本站所有信息由各公司自行发布,请在交易前确认真实合法性,本站不承担任何交易及此类作品侵权行为的直接责任及连带责任!