Spring Bean的初始化源码解析

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.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容