接触Spring的人肯定逃不开两个名词:控制反转和依赖注入。如何理解这两个概念呢?我们先看下面的漫画图:
IOC工作方式.jpg
从上图就应该很好理解了,那我们先讲控制反转。
所谓的控制反转的实现其实就是由于多了一个IOC容器。在IOC出现之前,对于Class A来说如果想用B对象的话只能自己new,我们将他叫做“正常的”控制方式(其实就是旧有的方式)。现在我们不这么做了,Class B在诞生之日起通过一种方式(注解或XML)将自己转化成一个bean注册到IOC容器中,Class A需要用到B对象的话不需要new,只要告诉IOC容器我需要一个B对象,之后会由IOC容器主动创建一个对象B注入到A需要的地方。所以,和以前“正常的”控制方式相比,一个自己造一个别人给,是不是反转过来了?
至于依赖注入,我理解其实就是实现控制反转的方式而已,就是由IOC容器在运行期间,动态地将某种依赖关系注入到对象之中,也就是漫画图中IOC容器注入Bean到A的过程。
网友评论