Spring使用Xml创建bean的过程

Spring使用Xml创建bean的过程

 

Spring通过Xml创建bean的过程:
ClassPathXmlApplicationContext 的 构造方法
调用 AbstractRefreshableConfigApplicationContext 的 setConfigLocations
调用 AbstractApplicationContext 的 refresh()
调用 AbstractApplicationContext 的 obtainFreshBeanFactory()
调用 AbstractApplicationContext 的 refreshBeanFactory()
调用 AbstractRefreshableApplicationContext 的 refreshBeanFactory()
调用 AbstractRefreshableApplicationContext 的 loadBeanDefinitions()
调用 AbstractXmlApplicationContext 的 loadBeanDefinitions()
调用 AbstractBeanDefinitionReader 的 loadBeanDefinitions()
调用 BeanDefinitionReader 的 loadBeanDefinitions()
调用 XmlBeanDefinitionReader 的 loadBeanDefinitions()
调用 XmlBeanDefinitionReader 的 loadBeanDefinitions()
调用 XmlBeanDefinitionReader 的 doLoadBeanDefinitions()
调用 XmlBeanDefinitionReader 的 registerBeanDefinitions()
调用 BeanDefinitionDocumentReader 的 registerBeanDefinitions()
调用 DefaultBeanDefinitionDocumentReader 的 registerBeanDefinitions()
调用 DefaultBeanDefinitionDocumentReader 的 doRegisterBeanDefinitions()
调用 DefaultBeanDefinitionDocumentReader 的 parseBeanDefinitions() 
循环调用 DefaultBeanDefinitionDocumentReader 的 parseDefaultElement() 
调用 DefaultBeanDefinitionDocumentReader 的 processBeanDefinition()
调用 BeanDefinitionReaderUtils 的 registerBeanDefinition()
调用 BeanDefinitionRegistry 的 registerBeanDefinition()
调用 DefaultListableBeanFactory 的 registerBeanDefinition()
DefaultListableBeanFactory 的 属性(IOC容器) beanDefinitionMap.put(beanName, beanDefinition);添加bean