手撕Spring-DI代码框架

一、DI 依赖注入:

   传统的通过XML文件的方式配置依赖关系,相信有经验的Spring开发人员应该还清晰记得如何配置:

   例如:




  
    
  

  随着Spring 声明式的注解编程,曾经的繁重XML配置,渐渐的被注解多替代,程序猿更多的关注业务代码的开发,Bean的创建,以及依赖关系注入,由Spring框架自动完成。

   接下来带着大家一起分析一下DI的流程,上一节咱们学了《手撕Spring-IoC代码框架》,在DispatchServlet的初始化过程中,自动定位,加载,并初始化的IoC容器。

   DI需要做的事情,就是根据beanName,或者ClassType 创建Bean,以及Bean中的依赖,这一个环节有个经常面试会问的问题:“循环依赖问题”,如何解决?

    Spring默认懒加载,Bean实例化分为两种场景:

   1)配置AOP,则需要创建动态代理;

   2)没有配置AOP,则根据BeanFactory,原生对象创建Bean。

手撕Spring-DI代码框架_第1张图片

 

 二、时序图:

手撕Spring-DI代码框架_第2张图片

  

你可能感兴趣的:(Spring)