IoC容器:01.概念梳理

78 阅读1分钟

1.什么是IoC

Ioc英文全程是Inversion of Control,即控制反转,控制反转是一个面向对象设计原则,可以用来降低计算机代码之间的耦合度。常见的实现方式是依赖注入DI(Dependency Injection)。

在使用IoC容器之前,如果我们的Java代码中,A类需要使用到B对象,用法如下:

class B{}
class A{
    B b = new B();
}

那么对于上面的代码,A中需要使用到B对象,就在A中创建B对象,那么B对象的控制权就在A中。如果我们使用了IoC容器,相当于有了一个Container,用来放所有的Bean。还是上面这个案例,当项目启动的时候,A和B都会将自己的信息告知给Spring容器,例如将自己类的全路径,将来创建出来Bean的名称等等信息都告诉Spring容器,Spring容器就可以根据这些已有的信息创建出相应的对象,这些创建出来的对象都是由Spring容器进行管理。这样,将来A需要使用到B对象,就不用自己去创建B对象了,而是直接去跟Spring容器要一个B对象。此时,由于B对象是由Spring容器创建的,B对象的控制权就归属与Spring容器了。

相比于用IoC容器之前,B对象的控制权由A对象中转移到Spring容器中,B对象的控制权反转了,这就是所谓的控制反转。