XmlBeanFactory继承DefaultListableBeanFactory,关系图如下

XmlBeanFactory的初始化-LMLPHP

内部通过XmlBeanDefinitionReader来从xml中读取bean的定义,即委托给XmlBeanDefinitionReader,XmlBeanDefinitionReader是读取xml的bean定义,委托实际的xml文档读取给BeanDefinitionDocumentReader,这个类加载一个DOM文档给BeanDefinitionDocumentReader使用,它使用给定的bean的factory注册bean的定义。在XmlBeanFactory初始化时,调用XmlBeanDefinitionReader的loadBeanDefinitions,内部将Resource对象构造成EncodedResource对象。调用loadBeanDefinitions,内部将EncodedResource对象添加到resourcesCurrentlyBeingLoaded线程对象中,通过EncodedResource对象构造成InputSource对象。调用doLoadBeanDefinitions,内部首先初始化Document对象,通过documentLoader构造Document对象,调用registerBeanDefinitions,内部通过BeanDefinitionDocumentReader对象注册bean实例。调用BeanDefinitionDocumentReader的registerBeanDefinitions,首先获取Document对象的root,

07-02 05:48