2.1.1_BeanFactory是怎么加资源的
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2.1.1_BeanFactory是怎么加资源的相关的知识,希望对你有一定的参考价值。
其实这是个伪命题,BeanFactory本身并不能主动加载Bean配置。
BeanDefinitionReader持有BeanFactory引用,读取配置资源并解析成BeanDefinition,然后注册到BeanFactory中。
一个最简单的BeanFactory的使用样例只需要几行代码:
1 BeanFactory beanFactory = new DefaultListableBeanFactory(); 2 Resource resource = new ClassPathResource("beans.xml"); 3 XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(beanFactory); 4 reader.loadBeanDefinitions(resource);
示意图:
整个处理过程:
1、创建DefaultListableBeanFactory;
2、创建配置文件资源ClassPathResource;
3、创建XmlBeanDefinitionReader,内部持有BeanFactory的引用;
4、XmlBeanDefinitionReader读取Resource数据流;
5、通过DefaultDocumentLoader对xml数据流进行解析、验证,生成DOM;
6、通过DefaultBeanDefinitionDocumentReader对DOM进行处理并生成BeanDefinition;
7、XmlBeanDefinitionReader将BeanDefinition注册到BeanFactory。
这样BeanFactory中就有了配置文件中的Bean定义,但此时BeanFactory中并没有实际的Bean对象生成,通过getBean(string name)会触发的Bean创建。
以上是关于2.1.1_BeanFactory是怎么加资源的的主要内容,如果未能解决你的问题,请参考以下文章
Spring源码学习-容器BeanFactory BeanDefinition的创建-解析资源文件
SPRING05_BeanFactory概述HierarchicalBeanFactoryListableBeanFacotoryDefaultListableBeanFactory档案馆详解(代码片