首页 > 学院 > 开发设计 > 正文

Spring之旅--Spring管理bean的原理

2019-11-14 11:16:07
字体:
来源:转载
供稿:网友

        各位老少爷们,赶紧系紧安全带,菜鸟开车,防止车速过快偷笑。言归正传,本篇文章呢,主要是来探讨一下SPRing管理bean的原理。

       

        如上xml文件所示,通常我们在使用Spring管理系统应用的组件时,在Spring的核心配置文件中,配置上需要管理组件的信息就可以了,剩下的就都交于Spring框架了。但是我们不要满足于用,更要知道其中的原理。知己知彼,百战不殆。为了了解Spring框架如何管理bean的,接下来我们简单模仿一下Spring 容器。

                        MyTestClassPathXMLapplicationContext类模仿了Spring 容器,仔细分析其中的代码,可以知道,在这个容器类中,我主要做了以下几个步骤:

        1. 读取xml配置文件, 数据封装到BeanDefinition。

        2. 将BeanDefinition对象存入list。

        3. 遍历list, 通过反射产生对象并存入map。

        4. 调用getBean方法返回一个bean对象, 此bean对象为单例。

        读取xml配置文件时,我采用的是dom4j 的sax方法,并且通过xpath来匹配xml文档中的节点。因此我们需要在项目中引入两个jar包:dom4j-1.6.1.jar、jaxen-1.1-beta-6.jar。将这两个jar扔到项目的lib文件夹下即可。当我们解析完成xml文档,并且将xml文档中<bean>节点所配置的信息封装到BeanDefinition对象中时,接下来容器会通过这些封装的配置信息,通过反射技术,实例化bean对象,并存入一个Map集合。容器提供了一个getBean方法,在容器外部可以获取到实例化后的bean对象。        容器类已经模仿好了,那么接下来需要进行实例测试了。事先我定义了一个接口,并且编写实现类实现了这个接口,代码如下。                编写测试用例,我采用的是单元测试框架junit4进行测试单元测试,测试用例代码如下。                以上就是通过模仿Spring容器管理bean的过程,可以让我们可以更深入的理解Spring管理bean对象的机制,当然以上的模仿只是做简单的模仿,Spring 的容器提供了更多的功能和更多的行为,需要你慢慢地去理解和使用。        
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表