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