spring DI

作者: 维特无忧堡 | 来源:发表于2018-07-24 22:51 被阅读0次

    今天早上抽空看来一下spring依赖注入的源码,在这里记录一下它的调用流程吧

    依赖注入实现原理

      实质上就是new一个对象,并给其属性赋值(setter注入和构造器注入)
      那么落实到spring是怎么实现的呢?
      首先它是先调用getBean方法, 然后getBean又调用了doGetBean方法,然后在其中调用了createBean方法,创建过程后委托给了doCreateBean。所以实际上最重要的方法就是doCreateBean。
      在doCreateBean有两个方法(1)createBeanInstance,作用是生成Java对象。(2)populateBean完成注入。
      在createBeanInstance中创建对象的方式有两种,BeanUtil和Cglib,前者是又java反射实现的,后者是对字节码加强的一种方式。
      在populateBean中调用appPropertyValues中进行注入,获取BeanDefinition中的属性信息然后给属性赋值。这样一个依赖注入的过程就完成了。
      不过如果让我设计我肯定不会写成这样,它弄了好多抽象类和接口,工厂模式用的飞起...毕竟是大牛

    相关文章

      网友评论

          本文标题:spring DI

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