Spring源码学习之XmlBeanFactory的实现

我们在使用spring框架中,XmlBeanFactory是我们熟悉的,看spring的源码的XmlBeanFactory.class中我们可以看到其中的注释是Rod Johnson在2001年就写下了,可见XMLBeanFactory是spring框架中的元老类了。源码如下图所示:


XmlBeanFactory继承自DefaultListableBeanFactory这个类,这个类非常重要,是我们经常使用的一个IoC容器的实现,它包含了基本IoC容器所具有的重要功能,在spring中,其实是把DefaultListableBeanFactory作为一个功能完整的IoC容器来使用的。XMLBeanFactory继承自DefaultListableBeanFactory基本功能的同时,自己本身也拓展了一下新的功能,即可以读取一个以xml文件形式定义的IoC容器。下面就说一说读取xml文件形式是怎么实现的:

对xml文件的读取并不是由XmlBeanFactory直接实现的,在XmlBeanFactory类中定义了一个XMLBeanDefinitionReader,xml文件的处理就在这个reader对象中。

在XMLBeanFactory.class中我们能看到有XmlBeanFactory(Resource re)和XmlBeanFactory(Resource re。BeanFactory parentBeanFactory)两个构造方法,可见构造XMLBeanFactory这个容器时,需要指定BeanDefinition的信息来源,而且这个信息来源需要封装到Spring中的Resource类中(spring中用来封装I/O操作的类),比如,我们的BeanDefinition信息是以XML文件形式存在的,那么可以使用像 ClassPath-Resourceres = new ClassPathResource(“beans.xml”>;” 将Resource作为XMLBeanFactory构造方法的参数传入进去,这样IoC容器就可以方便的定位到需要的BeanDefinition信息来对Bean完成容器的初始化和依赖注入。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值