Spring源码解析:finishBeanFactoryInitialization方法如何完成单例bean初始化?
- 内容介绍
- 文章标签
- 相关推荐
本文共计6254个文字,预计阅读时间需要26分钟。
七千字长文深读解析,Spring中如何初始化单例Bean,面试中常问的Spring如何解决循环依赖问题?Spring源码解析之finishBeanFactoryInitialization方法初始化单例Bean。
七千字长文深刻解读,Spirng中是如何初始化单例bean的,和面试中最常问的Spring是如何解决循环依赖?Spring源码解析之八finishBeanFactoryInitialization方法即初始化单例bean
七千字长文深刻解读,Spirng中是如何初始化单例bean的,和面试中最常问的Spring是如何解决循环依赖?
今天解读Spring核心方法refresh()中最最重要的一个方法finishBeanFactoryInitialization()方法,该方法负责初始化所有的单例bean。
finishBeanFactoryInitialization()方法位于refresh()中下标为8的位置。
到目前为止,应该说 BeanFactory 已经创建完成,并且所有的实现了 BeanFactoryPostProcessor 接口的 Bean 都已经初始化并且其中的 postProcessBeanFactory(factory) 方法已经得到回调执行了。而且 Spring 已经“手动”注册了一些特殊的 Bean,如 environment、systemProperties 等。
剩下的就是初始化 singleton beans 了,大都数我们的业务中都是单例bean,就像我们写的@Controller、@Service的类(没有设置懒加载的)都是在这个地方初始化,以供我们使用,如果没有设置懒加载,那么 Spring 会在接下来初始化所有的 singleton beans。
我们先看一下refresh()的源码,大概看下finishBeanFactoryInitialization(beanFactory)所处的位置。
本文共计6254个文字,预计阅读时间需要26分钟。
七千字长文深读解析,Spring中如何初始化单例Bean,面试中常问的Spring如何解决循环依赖问题?Spring源码解析之finishBeanFactoryInitialization方法初始化单例Bean。
七千字长文深刻解读,Spirng中是如何初始化单例bean的,和面试中最常问的Spring是如何解决循环依赖?Spring源码解析之八finishBeanFactoryInitialization方法即初始化单例bean
七千字长文深刻解读,Spirng中是如何初始化单例bean的,和面试中最常问的Spring是如何解决循环依赖?
今天解读Spring核心方法refresh()中最最重要的一个方法finishBeanFactoryInitialization()方法,该方法负责初始化所有的单例bean。
finishBeanFactoryInitialization()方法位于refresh()中下标为8的位置。
到目前为止,应该说 BeanFactory 已经创建完成,并且所有的实现了 BeanFactoryPostProcessor 接口的 Bean 都已经初始化并且其中的 postProcessBeanFactory(factory) 方法已经得到回调执行了。而且 Spring 已经“手动”注册了一些特殊的 Bean,如 environment、systemProperties 等。
剩下的就是初始化 singleton beans 了,大都数我们的业务中都是单例bean,就像我们写的@Controller、@Service的类(没有设置懒加载的)都是在这个地方初始化,以供我们使用,如果没有设置懒加载,那么 Spring 会在接下来初始化所有的 singleton beans。
我们先看一下refresh()的源码,大概看下finishBeanFactoryInitialization(beanFactory)所处的位置。

