•prepareRefresh() refresh之前的一些准备
•obtainFreshBeanFactory() 获取beanFactory实例的
•prepareBeanFactory() 对beanFactory进行相关的设置(classloader,设置解析表达式)
•postProcessBeanFactory() beanFactory的一些后置操作
•invokeBeanFactoryPostProcessors() 调用工厂后处理器,对带有@PriorityOrder,@Order,和没有这两个注解的类进行先后加载顺序的排序注册,处理bean标签,扫描bean文件,解析成bean,加载到bean容器中。(以ConfigurationClassParser类中的doProcessConfigurationClass为例,会扫描包中带有注解的类进行加载)。
•registerBeanPostProcessors() 找出实现BeanPostProcessor的类并注册到beanFactory中
•initMessageSource() 初始化国际化相关的属性
•initApplicationEventMulticaster() 初始化事件广播器,用于事件发布
•onRefresh()
•registerListeners() 注册监听器
•finishBeanFactoryInitialization() 实例化beanFactory中已经被注册未被实例化的所有实例
•
•finishRefresh() 完成实例化后做其他操作,比如初始化生命周期
欢迎广大网友提出修改意见,后续会对各个方法内进行解析。

本文详细解析了Spring Boot启动过程中的关键步骤,包括prepareRefresh()、obtainFreshBeanFactory()等方法的作用,以及如何通过ConfigurationClassParser扫描带有注解的类进行加载,最终完成bean的实例化。
717

被折叠的 条评论
为什么被折叠?



