美文网首页
Spring Bean的初始化源码解析

Spring Bean的初始化源码解析

作者: timothyue1 | 来源:发表于2018-02-09 15:34 被阅读0次

spring bean在初始化的过程中,大致流程如下,后面我们将根据以下的几点来分析和理解源码:

1.转换对应的beanName

2.尝试从缓存中加载单例

3.bean的实例化

4.原型模式的依赖检查

5.检测parentBeanFacotory

6.将存储XML配置文件的GernericBeanDefinition转换为RootBeanDefinition.

7.寻找依赖

8.针对不同的scope进行Bean的创建

9.类型转换

FactoryBean的使用

一般情况,spring通过反射机制利用Bean的class属性指定实现类来实现Bean。

图1

缓存中获取单例Bean

单例只会在spring的同一个容器内被创建一次,后续再获取Bean直接从单例缓存中获取。此时会存在循环依赖的情况,程序首先尝试从缓存中加载,然后再次尝试从singletionFactories中加载。如果存在循环依赖,spring创建Bean的原则是不等Bean创建完成就会将创建Bean的objectFactory提早曝光加入到缓存中,一旦下一个Bean创建时需要依赖上一个Bean,则直接使用objectFactory.

相关文章

网友评论

      本文标题:Spring Bean的初始化源码解析

      本文链接:https://www.haomeiwen.com/subject/bnoftftx.html