Spring 源码学习 09:refresh 大概流程
前言
前面的准备工作结束之后,就是进入核心代码 refresh。
源码
源码就是密密麻麻的一大堆,源码上有相应的注释。
下面就根据流程,一步一步的深入源码,了解到每一步都是做什么了。
容器刷新准备
prepareRefresh
这一步主要是准备一些上下文信息。就不过多介绍了。
obtainFreshBeanFactory
下面关注初始化 BeanFactory 这一步:
进入源码:
通过 Debug 可以看出 refreshBeanFactory()
这一步调用的是 org.springframework.context.support.GenericApplicationContext#refreshBeanFactory
中实现的方法。
继续跟进
发现这块判断了一个 refreshed
刷新状态。
refreshBeanFactory
方法也有另一个实现是在 AbstractRefreshableApplicationContext
中, 只不过我的断点没有断进去,这块也一起看下。
其中会创建 BeanFactory 并加载 BeanDefinition。只不过我暂时没有断到,所以等后面遇到之后再详细介绍。
总结
本文简单介绍了 refresh 的流程,并介绍了前两个部分:
prepareRefresh 准备上下文信息
obtainFreshBeanFactory 初始化 BeanFactory
相关推荐
版权声明: 本文为 InfoQ 作者【程序员小航】的原创文章。
原文链接:【http://xie.infoq.cn/article/b731e66bc0c22debb73641b27】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论