Spring中的IOC和DI
2018-03-22 本文已影响0人
何甜甜在吗
(一)IOC:Inversion of Control(控制反转)
理解IOC我们只要知道
1)控制什么
控制管理对象的生命周期
2)谁控制谁
IOC容器控制对象的生命周期、控制对外部资源的访问
3)反转是什么
有反转就有正转
正转:用户自己创建依赖对象,比如对象A中有一个成员对象B,则我们创建对象A就需要自行创建B,并调用相应的方法使两个对象之间关联起来
反转:容器自行创建依赖对象。
用两张图生动比较一下使用IOC和不适用IOC的区别:


(二)DI:Dependency Injection(依赖注入)
理解DI我们只要知道
1)谁依赖谁
应用程序依赖IOC容器
2)为什么需要依赖
应用程序需要IOC容器来提供对象需要的外部资源(需要从IOC容器中获得对象)
3)谁注入谁
外部资源注入IOC容器
4)注入了什么
注入某个对象所需要的外部资源(包括对象、资源、常量数据)
(三)DI和IOC的关系:
DI和IOC描述的都是同一概念,只不过描述的方式不一样