Spring之到底什么是IOC和DI?
什么是IOC容器?
IOC全名:Inversion Of Control,翻译过来就是控制反转。
什么是控制反转?
这个是面向对象的一种设计原则,可以用来减低计算机代码之间的耦合度(模块及模块之间信息或参数依赖的程度)其中最常见的方式叫做依赖注入(依赖注入就是把本来应该在程序中有的依赖在外部注入到程序之中),还有一种方式叫“依赖查找”。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。
IOC的思想是反转资源获取的方向,传统的资源查找方式要求组件向容器发起请求查找资源。作为回应,容器适时的返回资源. 而应用了 IOC 之后, 则是容器主动地将资源推送给它所管理的组件, 组件所要做的仅是选择一种合适的方式来接受资源. 这种行为也被称为查找的被动形式。
现在接着来说什么是IOC的事情。
所以IOC容器就是具有依赖注入功能的容器,是可以创建对象的容器,IOC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。IOC是对对象进行控制反转,也成为依赖注入。
什么是容器?
容器负责两件事:
绑定服务与实例之间的关系
获取实例,并对实例进行管理(创建与销毁)
什么是DI?
IOC 的另一种表述方式。即组件以一些预先定义好的方式(例如: setter 方法)接受来自如容器的资源注入. 相对于 IOC 而言,这种表述更直接。
还没有评论,来说两句吧...