调用finishbeanfactoryinitialzation完成bean最后的创建
spring 完成bean的最后创建原理点进此方法 发现最终会执行下面这个方法
就是初始化最后的单实例bean
spring 完成bean的最后创建原理
继续跟进 可以看到

先得到 所有beandefinitions 然后再开始创建对象
spring 完成bean的最后创建原理
spring 完成bean的最后创建原理如果是factorybean 就调用 getobject 创建 bean不是则 调用下面的方法进行创建bean
spring 完成bean的最后创建原理调用dogetbean创建
spring 完成bean的最后创建原理先获取缓存中的单实例bean ,如果能

spring 完成bean的最后创建原理发现getsingle是从 concurrenthashmap中获取如果已经被创建则不在创建,如果没有则开始创建
spring 完成bean的最后创建原理
如果缓存中拿不到则 先得到bean工厂开始创建bean
spring 完成bean的最后创建原理标记当前bean已经被创建 线程安全,保证单例
spring 完成bean的最后创建原理获取bean的定义信息。 先创建和当前bean有依赖的bean利用getbean创建和上面步骤一样创建bean
spring 完成bean的最后创建原理
然后判断该bean是单实例还是多实例进行创建
spring 完成bean的最后创建原理在单例进行创建时,还要进行对方法进行拦截 做一些对bean创建前后的事情,比如说代理,通过postprocessor

相关文章: