从源码注释来看,Sring 3.1开始就弃用了XmlBeanFactory,DefaultListableBeanFactory能够彻底替代它的功能。函数
XmlBeanFactory是DefaultListableBeanFactory的一个扩展,其中,初始化了XmlBeanDefinitionReader,提供了两个构造函数用来建立XmlBeanFactory Ioc容器。this
public class XmlBeanFactory extends DefaultListableBeanFactory { private final XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(this); public XmlBeanFactory(Resource resource) throws BeansException { this(resource, null); } public XmlBeanFactory(Resource resource, BeanFactory parentBeanFactory) throws BeansException { super(parentBeanFactory); this.reader.loadBeanDefinitions(resource); } }
Resource是Spring封装的I/O的接口类,用来获取定义bean的Xml文件信息。code
Resource resource = new ClassPathResource("XmlBeanFactory.xml", getClass());
ClassPathResource构造出Resouce,以入参的形式传递给XmlBeanFactory的构造函数,经过调用XmlBeanDefinitionReader的loadBeanDefinitions函数对xml文件中定义的bean进行初始化和依赖注入。xml