美文网首页
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