什么是IOC

所谓的IOC就是Inversion Of Control,也就是控制反转,其实就是对于某个对象A,原来的控制权在B手上,B想用就能用,想不用就不用,但是现在把控制权交还给了A,只有A给了别人权限才能用,这就是控制反转。

没有IOC的时候,举例如下:

1
2
3
4
5
6
7
class A{}
class B{
private A a = new A();//此时就是我们所说的控制权在B手上,也就是控制(不是控制反转)
public void use(){
System.out.println(a);//此时B对A控制使用
}
}

有了IOC时使用如下:

1
2
3
4
5
6
7
8
9
10
11
@Component
class A{}
class B{
//此时控制权在A自己手上,可以直接使用,当然如果对象A没有注入到容器之中的话,B就不能使用。
@Resource
private A a;

private void use(){
System.out.println(a);//此时B对A控制使用
}
}

总结下来就是:IOC(不是指的Spring IOC容器,Spring IOC容器是实现IOC思想的一个载体)实际上就是一种设计思想,可以通过Spring框架对一些原本本来需要手动创建的对象,交由Spring框架统一管理。

​ 如果没有Spring的IOC容器的话,我们要使用某个对象的时候只能通过创建对象的方式解决,但是有了SpringIOC容器之后,对象就会交由IOC容器创建并管理,当我们想使用的时候就直接从容器中获取即可。