Spring源码私家笔记—— ApplicationContext.refresh()方法浅析

本文将带领读者逐步剖析Spring容器的刷新启动过程,从AbstractApplicationContext的refresh()方法入手,强调理解方法大意而非深入每一个细节。建议读者直接分析官方源码,并在源码中记录自己的理解和疑问。后续章节将重点解析refresh()中关键部分,同时涵盖监听器和国际化等内容。
摘要由CSDN通过智能技术生成

从本章开始我们将开始进入Spring容器真正的刷新启动过程,直接点击或者debugger进入AbstractApplicationContext的refresh()方法。这里再次提示一下大家,在先前的提到过的“胸有大纲,心中不慌”,大家务必要克制自己挨个debugger进refresh的每个方法进行查看的冲动。


大家想啊,Spring的作者把一个个的对象和方法封装出来,就是想要屏蔽底层实现的复杂性,那我们就按照这一个个方法名先理解个大概。建议大家直接把springframework的官方源码clone下来,在分析源码的过程中,尽情的把自己的理解和疑问以注释的形式,写到源码当中去,这就好比读一本书,只有有了自己的理解和感想,这本书才会被读者赋予它的灵魂。


下面笔者就打个样。进入refresh()方法,看看Spring容器是咋刷新的。

b84c971f557582c3dfba8151e6480474.png

24648f5bcbcd1b51dd51884b8ae95bf5.png

cc5ead06dae29bea4af516034376e6a3.png

单单从refresh()中调用的方法来讲,还是挺清楚的,当然我们也会看一下这些方法的声明注释,或者粗略的看一下里面的调用流程,但此时还是以理解大意为主,内部的实现有模糊有疑问的点可以先行跳过,或者通过注释留个标记。


6ef32514a983e58a6218a8c32e58edbe.png


上述表格加粗的部分,我们将在后面的章节中着重进行解析,其他部分比如监听器、国际化等,我们将根据实际情况进行更新。



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

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值