本文最后更新于:2024年4月22日 下午
概述将文件解析成BeanDefinition信息之前流程,
流程分析
debug代码流程
debug上述代码,断点位置
debug 堆栈分析
核心堆栈代码分析
ClassPathXmlApplicationContext refresh()
AbstractRefreshableApplicationContext refreshBeanFactory()
AbstractXmlApplicationContext loadBeanDefinitions()
这里组合了一个资源加载器,也就是 beanDefinitionReader.setResourceLoader(this); 将自身赋予内容读取器,后续由该内容读取器去读取内容
AbstractXmlApplicationContext loadBeanDefinitions()
AbstractBeanDefinitionReader loadBeanDefinitions()
XmlBeanDefinitionReader doLoadBeanDefinitions
使用dom解析工具将xml 解析成Document,后续BeanDefinitionDocumentReader 会将document解析成bean对象
DefaultBeanDefinitionDocumentReader processBeanDefinition
DefaultListableBeanFactory registerBeanDefinition
到达这一步,整个基于xml 类型的解析得到beanDefinitionMap 对象就完成了
分析流程图