Sping IoC的基本概念
控制反转(Inversion of Control, IoC),是Spring框架的核心,用来消减计算机程序的耦合问题。依赖注入(Dependency Injection, DI)是IoC的另外一种说法,只是从不同的角度描述相同的概念。
当某个Java对象(调用者)需要调用另一个Java对象(被调用者, 被依赖对象)时,在传统编程模式下,调用者通常会采用“new被调用者”的代码方式来创建对象。这种方式会增加调用者与被调用者之间的耦合性,不利于后期代码的升级和维护。
当Spring框架出现后,对象的实例不再由调用者来创建,而是由Spring容器来创建。Spring容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制。这样,控制权由调用者转移到Spring容器,控制权发生了反转,这就是Spring的控制反转。
从Spring容器角度来看,Spring容器负责将被依赖对象赋值给调用者的成员变量,相当于为调用者注入它所依赖的实例,这就是Spring的依赖注入。
综上所述,控制反转时一种通过描述(在Spring中可以是XML或注解)并通过第三方去产生或获取特定对象的方式。在Spring中实现控制反转的是IoC容器,其实现方法是依赖注入。
注:本文由博主搜集整理而来,不用于任何商业用途,如有侵权,请联系博主删帖!