Spring源码私家笔记——Spring启动流程概述

2022-05-03  本文已影响0人  请给我一根烟的时间

在分析Spring源码之前,很容易陷入的一个误区就是,debugger一路点进去,然后迷失在茫茫的源码之中。

其实分析源码跟我们做系统开发一样,不会上来就开始撸代码,而是先做好系统的设计,然后才开始分工合作。正所谓“胸中有大纲,心中不慌张”,无论我们debugger到了何处,想想我们在地图的何处,就可以导航回去。


d7db65b7943648e49ba1425aeccce451.png f7947d8902134298a333bb8ff4d404ce.png

上图比较简略的标识了Spring容器的启动过程,所谓简略是指重点关注容器的变化过程的,比如:容器对象定义的加载、BeanFactory的后置处理,容器Bean的加载过程。而其他的过程比如属性资源的加载、监听器的处理等做了刻意的省略,在之后的Spring源码系列中,我们会用单独的章节进行介绍。

核心概念介绍

关键流程说明

配置信息读取
在获取BeanFactory对象的过程中,会通过BeanDefinitionReader对象进行各种配置文件的解析和读取。

BeanFactory后置处理
在执行设计的Bean对象创建过程前,我们有机会扩展BeanFactoryPostProcessor来做一些个性化的工作,比如修改BeanDefinition信息,扩充Environment等

结语

学习Spring的过程我们可以尝试着从战略上藐视它,从战术上重视它。在大的面上,我们对几个关键对象有个了解,对整体的加载流程有个了解,可以不求甚解,但要有自己的独立认知和总结,有误差和遗漏也没有太大关系,在之后的慢慢深入分析中不断的回头来补充完善。

为什么说从战术上要重视呢?有些同学找了一个Spring的架构图看了下,写了个DEMO就说:哦,我已经理解了。其实深入源码看下去,无不是源码作者的匠心巧思,其中的扩展性考虑、对设计模式的应用、对各个模块的封装和组织都值得我们细细的去品读。

笔者原文发布在CSDN,欢迎点击查看:https://blog.csdn.net/mytream/article/details/124559529

也可以关注笔者:请给我一根烟的时间(https://blog.csdn.net/mytream),查看更多个人心得和分享

上一篇 下一篇

猜你喜欢

热点阅读