IOC核心为BeanFactory接口,beandefinition装载过程,分析流程如下:

1、从ClassPathXmlApplicationContext为切入点,找到父类AbstractRefreshableApplicationContext,进入refreshBeanFactory()
2、进入loadBeanDefinitions(beanFactory);
3、loadBeanDefinitions(beanDefinitionReader);
4、reader.loadBeanDefinitions(configResources);
5、counter += loadBeanDefinitions(resource);
6、doLoadBeanDefinitions(inputSource, encodedResource.getResource());
7、 registerBeanDefinitions(doc, resource);
8、documentReader.registerBeanDefinitions(doc, createReaderContext(resource));
9、parseBeanDefinitions(root, delegate);
10、parseDefaultElement(ele, delegate);
11、processBeanDefinition(ele, delegate);
12、delegate.parseBeanDefinitionElement(ele)从文件中加载为BeanDefinitionHolder,注册BeanDefinitionReaderUtils.registerBeanDefinition(bdHolder, getReaderContext().getRegistry());
13、registry.registerBeanDefinition(beanName, definitionHolder.getBeanDefinition());
14、this.beanDefinitionMap.put(beanName, beanDefinition);

springioc的BeanDefinition装载的全截图流程:

Spring ioc 启动初始化流程分析《一》
Spring ioc 启动初始化流程分析《一》
Spring ioc 启动初始化流程分析《一》
Spring ioc 启动初始化流程分析《一》
Spring ioc 启动初始化流程分析《一》
Spring ioc 启动初始化流程分析《一》
Spring ioc 启动初始化流程分析《一》
Spring ioc 启动初始化流程分析《一》
Spring ioc 启动初始化流程分析《一》
Spring ioc 启动初始化流程分析《一》
Spring ioc 启动初始化流程分析《一》
Spring ioc 启动初始化流程分析《一》
Spring ioc 启动初始化流程分析《一》
Spring ioc 启动初始化流程分析《一》

相关文章: