在编程中,当我们用到一个对象时,首先需要主动创建它,但是在大型项目中,大家分工合作,也许我们要用到的对象对应的类还没有被编写出来,我们肯定没法办new出来,这个时候就有了Spring框架,对象交给Spring来创建(我们不关心也没有能力关心是否已经有了对应的类和Spring是否能够创建我们需要的对象),我们直接从Spring容器中获取对象使用即可,此前对象是由我们主动创建的,我们具有控制权,但使用Spring框架之后我们将创建对象的权力交给了Spring,也就意味着我们对对象的控制权反转给了Spring,这就是控制反转;
控制未反转:由我们(程序员)来控制对象的创建;
控制反转:我们将创建对象的权力交给了Spring,由Spring来控制对象的创建;
当我们需要用到一个对象的时候,从Spring容器中获取,这对于Spring来讲,就是将程序所依赖的对象注入到程序中,这就是所谓的依赖注入;
依赖注入是控制反转的基础,如果没有依赖注入,就不可能存在控制反转;
二者只是同一个问题不同角度是描述;