各位老少爷们,赶紧系紧安全带,菜鸟开车,防止车速过快。言归正传,本篇文章呢,主要是来探讨一下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 的容器提供了更多的功能和更多的行为,需要你慢慢地去理解和使用。新闻热点
疑难解答