IOC,叫做控制反转,又叫做依赖注入(DI)。
直观地讲,就是容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在。
IOC有3种实现机制:
(1)通过接口注入,这种方式要求我们的类必须实现容器给定的一个接口,然后容器会利用这个接口给我们这个类注射它所依赖的类。
(2)通过set方法注入,这种方式也是Spring推荐的方式。
(3)通过构造方法注入类,这种方式Spring同样给予了实现,它和通过set方式一样,都在类里无任何侵入性,但是,不是没有侵入性,只是把侵入性转移了,显然第1种方式要求实现特定的接口,侵入性非常强,不方便以后移植。