Spring源码学习之XmlBeanFactory的实现
2017-02-18 16:24
435 查看
我们在使用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完成容器的初始化和依赖注入。
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完成容器的初始化和依赖注入。
相关文章推荐
- Spring源码学习--FactoryBean实现原理
- Spring源码学习之:模拟实现BeanFactory,从而说明IOC容器的大致原理
- 创建ApplicationContext与BeanFactory时的区别-Spring源码学习之容器的基本实现
- 创建ApplicationContext与BeanFactory时的区别-Spring源码学习之容器的基本实现
- Spring源码学习-5.ProxyFactoryBean实现与源代码分析
- spring源码初步学习-容器(BeanFactory)基本实现
- Spring源码阅读-使用ProxyFactoryBean实现AOP
- [spring源码学习]六、IOC源码-BeanFactory和factory-bean
- Spring源码学习之BeanFactory和FactoryBean
- Spring的AOP实现方式—ProxyFactoryBean配置方式实现源码剖析
- (精)Spring IOC核心源码学习III:bean标签和自定义标签实现原理
- Spring源码解析 - AbstractBeanFactory 实现接口与父类分析
- 【Spring源码分析】原型Bean实例化过程、byName与byType及FactoryBean获取Bean源码实现
- 【spring源码学习】spring的IOC容器之自定义xml配置标签扩展namspaceHandler向IOC容器中注册bean
- Spring源码分析之ProxyFactoryBean方式实现Aop功能的分析
- Spring源码学习之BeanFactory接口简述
- Spring源码分析之XmlbeanFactory继承关系图
- Spring源码学习之: 通过Spring @PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作
- Spring学习笔记 使用XML配置实现Bean的auto-wiring (自动绑定)
- Spring源码学习-1.IOC-DefaultListableBeanFactory