首页 > 其他分享 >为什么是Instantiate all remaining (non-lazy-init) singletons,而不是Instantiate all (non-lazy-init

为什么是Instantiate all remaining (non-lazy-init) singletons,而不是Instantiate all (non-lazy-init

时间:2022-12-03 16:34:56浏览次数:49  
标签:lazy init Instantiate non bean 实例

阅读spring源码时,注意到一个小细节,在核心方法refresh()中

我们都知道,bean的实例化发生在finishBeanFactoryInitialization(beanFactory)方法中

为什么是Instantiate all remaining (non-lazy-init) singletons,而不是Instantiate all  (non-lazy-init_spring


入上图,finishBeanFactoryInitialization(beanFactory)上有段小注释

Instantiate all remaining (non-lazy-init) singletons.

意思是实例化剩余的所有(非懒加载)的单实例,为什么要说是剩余的?难道还有一部分在前面已经被实例化了吗?

是的,早在invokeBeanFactoryPostProcessors(beanFactory)的时候,就已经实例化了一堆spring内部的bean了,也就是一堆在bean实例化前就要执行的各种BeanFactoryPostProcessor

为什么是Instantiate all remaining (non-lazy-init) singletons,而不是Instantiate all  (non-lazy-init_spring_02

正是因为在这个步骤已经实例化了一部分bean,所以注释才会说,是实例化剩余的所有bean.


标签:lazy,init,Instantiate,non,bean,实例
From: https://blog.51cto.com/u_15696939/5908564

相关文章