Spring IOC(依赖注入、控制反转)概念理解



Spring IOC(依赖注入、控制反转)概念理解

假设A组件依赖B组件

1. 自己new一个。 主动

2. 找工厂去要一个。 主动。

3. 等,等容器为我们提供一个被依赖组件。 被动。

传统模式下,无论是A去new一个B组件,还是通过工厂去获取B组件,都要需要A组件主动去获取被依赖的B组件。

用了Spring之后, Spring容器会负责把被依赖的B组件注入到A组件中,A只要被动地等待即可。

——此时A对B的控制关系,由原来的主动变成了被动,Johnson将之成为IoC(从A组件角度起名字)。

Martine Fowler —— IoC难理解,又给这个技术一个名字:依赖注入(DI,从Spring容器角度起名字)。

IoC和DI是同一个事情的两个不同说法。


 

 

依赖注入分为三种:

接口注入:很少使用。

 

设值注入:就是通过property元素控制调用setter方法,就是所谓的设值注入。

 

构造注入:就是constructor-arg控制调用有参数的构造器,由构造器来注入被依赖组件。就是所谓的构造器注入。