DI的全称是Dependency Injection,中文称之为依赖注入。它与控制反转(IoC)的含义相同,只不过这两个称呼是从两个角度描述的同一个概念。对于一个Spring初学者来说,这两种称呼很难理解,下面我们将通过简单的语言来描述这两个概念。

当某个Java对象(调用者)需要调用另一个Java对象(被调用者,即被依赖对象)时,在传统模式下,调用者通常会采用“new 被调用者”的代码方式来创建对象,如图1所示。这种方式会导致调用者与被调用者之间的耦合性增加,不利于后期项目的升级和维护。

在使用Spring框架之后,对象的实例不再由调用者来创建,而是由Spring容器来创建,Spring容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制。这样,控制权由应用代码转移到了Spring容器,控制权发生了反转,这就是Spring的控制反转。

从Spring容器的角度来看,Spring容器负责将被依赖对象赋值给调用者的成员变量,这相当于为调用者注入了它依赖的实例,这就是Spring的依赖注入,如图2所示。

©著作权归作者所有:来自51CTO博客作者qq6048445b266f9的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. KubeNode:阿里巴巴云原生容器基础设施运维实践
  2. 了解pod和pod的生命周期-这一篇文章就够了
  3. Docker容器实战之数据持久化+网络模式+资源限制
  4. 详解javascript的bind方法
  5. python入门教程14-01 (python语法入门之python内存泄露)
  6. 程序员Docker进阶
  7. 容器的日志管理ELK
  8. 容器组织服务docker-compose
  9. 漫谈容器监控

随机推荐

  1. android与webservice通信之中文乱码问题!
  2. android通过shape.xml制作渐变背景
  3. Android listview中使用button解决方法
  4. android apilevel和android系统版本对应
  5. Android动态壁纸开发
  6. android PhoneGap JQuery Mobile Demo
  7. android studio多渠道号,多包名打包
  8. Android SDK,API版本对照
  9. Android开发技术文章整理
  10. android 自动接听原码