Spring源码阅读笔记(2)

作者: 疯狂小兵 | 2016-05-11 | 阅读
「编辑」 「本文源码」

上一篇的Spring源码阅读笔记(1)简单讲解了IOC容器的初始化过程,接下来讲解IOC容器的依赖注入。

依赖注入一般发生在应用第一次通过getBean()向容器索取Bean的时候,但也可以在BeanDefinition中控制lazy-init属性实现Bean的预实例化,即完成依赖注入的过程,在初始化时完成。

1.IOC容器依赖注入Bean实例化过程

org.springframework.beans.factory.support.AbstractBeanFactory.getBean(String)开始

doGetBean(name, null, null, false) =>
createBean(beanName, mbd, args) =>
doCreateBean(beanName, mbdToUse, args) =>
createBeanInstance(beanName, mbd, args) =>
instantiateBean(beanName, mbd) =>
getInstantiationStrategy().instantiate(mbd, beanName, parent) =>
BeanUtils.instantiateClass(constructorToUse) 或者instantiateWithMethodInjection(bd, beanName, owner) =>
=>

Bean实例化的方式:

  1. 使用工厂方法实例化

instantiateUsingFactoryMethod(beanName, mbd, args)

  1. 使用容器的autowire特性,调用构造方法实例化
  2. 使用默认的构造方法实例化
  • hehehe
    • xixi
      • de

使用了CGLIB库生成java的字节码


版权声明:本文由 在 2016年05月11日发表。本文采用CC BY-NC-SA 4.0许可协议,非商业转载请注明出处,不得用于商业目的。
文章题目及链接:《Spring源码阅读笔记(2)》




  相关文章:

「游客及非Github用户留言」:

「Github登录用户留言」:

TOP