美文网首页
spring bean的生成过程(从BeanDefinition

spring bean的生成过程(从BeanDefinition

作者: 黑铁大魔王 | 来源:发表于2020-07-09 18:48 被阅读0次
  1. 实例化之前,从beanDefinitionMap里取出beanDef
  2. 创建SpringBean
    1. 生成包装的class
      • createBean()
    • 第一次调用后置处理器(postProcessBeforeInitialization, postProcessAfterInitialization)
    • createBeanInstance()
      • 第二次调用后置处理器(determineCandidateConstructors)推断构造方法
    1. 第三次调用给后置处理器(postProcessMergedBeanDefinition)合并beanDef
    2. 缓存beanFactory
      • 第四次调用后置处理器(getEarlyBeanReference)处理循环依赖
    3. 填充属性(populateBean)
      • 第五次调用后置处理器(postProcessAfterInstantiation)
      • 第六次调用后置处理器(postProcessProperties, postProcessPropertyValues)为pvsToUse赋值
    4. 初始化bean(initializeBean),返回SpringBean
      • 第七次调用后置处理器(postProcessBeforeInitialization)
      • 第八次调用后置处理器(postProcessAfterInitialization)
  3. addSingleton
    this.singletonObjects.put(beanName, singletonObject);
    this.singletonFactories.remove(beanName);
    this.earlySingletonObjects.remove(beanName);
    this.registeredSingletons.add(beanName);

相关文章

网友评论

      本文标题:spring bean的生成过程(从BeanDefinition

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