SpringBean 的生命周期
1. 背景
有的大兄弟目前还停留在使用spring的过程,对spring的核心Bean还没有什么了解。今天就和大家就从springBean的生命周期入手。
2. 什么是生命周期
生命周期就是指一个对象的生老病死。 嗯, 解释的很生动,形象。springBean的生命周期也就是一个Bean从出生,到死亡的过程。
3. Show code
3.1 入口
入口: org.springframework.beans.factory.BeanFactory#getBean
, 有时候,我们看代码并不是难事, 难的是如何找到入口。 这个当然得开动脑筋了,想想怎么用的。
3.2 入口举例
我们要找到Bean, 就得从GetBean开始,如果get不到,肯定就会去创建啦。找到了创建,那只要一条路走下去,我们就可以弄清楚Bean的生命周期了。
3.3 开始代码:
从
getBean
点个方法进去,找到org.springframework.context.support.AbstractApplicationContext
中的方法
接着进入
getBean
方法
进入
doGetBean
,部分代码删掉了,我们核心只关注创建Bean的方法,不关注中间的细节问题
进入
createBean
方法。找到doCreateBeann的方法,这个是真正干活的。 在spring中,一般具体干活的都是doSomething方法。
进入
doCreateBean
方法。Everybody, 重点来了, 这就是今天的重点。如何创建bean,以及设计到如何解决循环依赖问题(这个就稍微提一下)。
initializeBean
bean销毁的代码在
AbstractApplicationContext#destroyBeans
中,从disposableBeans中,找到实现了DisposableBean
接口的方法,执行destory()方法即可。
自此,bean创建的过程我们看完了。那么接下来就是总结bean的生命周期了。
4 总结
通过上面的代码分析,总结下来的生命周期图,如下所示。
自此,搞懂生命周期啦,接下来,就看大家自己如何操作代码了,在bean初始化过程中搞么事了。
版权声明: 本文为 InfoQ 作者【编号94530】的原创文章。
原文链接:【http://xie.infoq.cn/article/85f4c7c165ce4a0ad6dc92708】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论