什么是IOC和DI?DI是如何实现的?

  • IOC(Inversion of Control)叫控制反转, DI(Dependency Injection)叫依赖注入,是对IOC更简单的诠释。
  • IOC 控制反转是把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现对象组件的装配和管理。所谓的"控制反转"就是对组件对象控制权的转移,从程序代码本身转移到了外部容器,由容器来创建对象并管理对象之间的依赖关系。
  • DI 依赖注入的基本原则是应用组件不应该负责查找资源或者其他依赖的协作对象。配置对象的工作应该由容器负责,查找资源的逻辑应该从应用组件的代码中抽取出来,交给容器来完成。DI是对IOC更准确的描述,即组件之间的依赖关系由容器在运行期决定,形象的来说,即由容器动态的将某种依赖关系注入到组件之中。

简单的说

  • IOC(控制反转)是把对象创建交给Spring进行配置
  • DI(依赖注入)是向类里面的参数设置值
  • DI(依赖注入)不能单独存在,需要在IOC(控制反转)的基础上完成操作
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐