管理Spring容器中的自定义Bean

懵懂的女人 提交于 2020-04-07 02:15:45

Spring作为一个Bean容器,通过AOP和IoC很好的将这些Bean管理起来。但是,有的时候,我们希望从Spring的上下文管理其中部分与我们业务相关的对象。今天,想说的问题就是通过一个Map取出Spring符合我们业务中的Bean,在业务的特定阶段进行使用。

问题描述:
在处理业务中,把一部分数据信息需要放置到一个托管的地方,根据不同的状态来完成处理。而处理数据的逻辑不同。

解决办法:
那么我们可以通过为数据添加业务类型,然后我们通过类型去寻找符合它的业务处理。而我们的业务很多,如果通过switch判断,这样的程序耦合性很高,很不符合Spring的规范。通过查看资料,我们发现通过Spring将这件事变得简单了很多。

思路描述:
1. 通过定义一个Bean注册器(BeanRegistry),通过实现ApplicationContextAware接口,获取Spring的上下文,通过InitializingBean接口,在实例加载完毕后,从Spring上下中获取MarkedBizBean接口类型的Bean信息。
2. 需要配合业务处理的Bean需要实现MarkedBizBean接口,这样我可以通过BeanFactoryUtils.beansOfTypeIncludingAncestors方法从Spring上下文收集需要的Bean。
3. 通过一个BizBeanService的服务接口供外界使用BizBean信息。
4. 那么,我们将要处理的对象信息,只需要存储了需要处理的业务key或者其他的方式,将业务数据和业务操作关联起来即可解决问题。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!