Spring配置文件的加载、解析

Spring的核心流程是读取配置文件,解析并封装成BeanDefinition,并将所有的BeanDefinition收集到一个叫DefaultListableBeanFactory的容器中。

一、setConfigLocation
设置配置路径方便后续对其进行解析

二、refresh方法,解析并封装BeanDefinition
该方法中有几个重要的方法
1.obtainFreshBeanFactory() 解析配置文件,并解析bean标签收集封装成BeanDefinition,将BeanDefinition封装到DefaultListableBeanFactory中

2.prepareBeanFactory()
初始化一些基本的类到BeanFactory中,或者将该BeanFactory注入到其他组件中,如
Resolver、Registrar、Processor、Aware、Dependency,下图所示

3.postProccessBeanFactory()
添加web相关的ServletContextAwareProcessor到容器

4.invokeBeanFactoryPostProcessors()
获取容器中所有实现BeanDefinitionRegistryPostProcessor的类对象(字面理解就是BeanDefinition的注册器),并完成postProcessBeanDefinitionRegisry的方法调用,最终完成BeanDefinition的注册

5.registerBeanPostProccessors
获取所有BeanPostProcessor的BeanDefinition对象,再通过getBean进行实例化BeanPostProcessor对象,然后按照排序规则重新封装成BeanPostProcessor对象集合

6.finishBeanFactoryInitialization
对非抽象的、单例的、非懒加载的BeanDefinition进行getBean实例化

posted @   vello  阅读(54)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示