1、IOC理论
ioc作为spring的第一个核心概念,我们有必要对其进行深入认识。
ioc是inversion of controller的缩写,翻译为控制反转。ioc就是由spring ioc容器控制bean对象的生命周期和bean对象之间的依赖关系。
比如我们有3个对象A,B,C A依赖B,B依赖C 每次实例化A对象的时候 就得new A() a对象中new B() ,b对象中new C(),每次使用皆是如此 。我们知道使用A对象的时候,只是使用A对象所提供的服务,并不关系A B C对象是我们自己主动创建的还是已经自己实例好的。自己实例好的对我们而言更加方便。
在上面的例子中,可以用滴滴打车来形容,在没有打车软件之前,我们打车的时候得自己主动叫车,叫车的这个过程对于我们来说并不关心,只关系能不能打到车。有了打车软件后,我们只需要告诉打车软件,我们需要一辆车就可以了,我们只负责坐车。
打车软件等第三方服务就类似于spring ioc。原来是需要什么东西自己去拿,现在是由第三方服务给我们送过来。
ioc有一个别名叫DI(Dependency Injection),即依赖注入。
有了ioc以后,就可以为被注入对象提供被注入对象,注入方式有如下几种:构造器注入、setter方法注入、反射注入。
①构造器注入:
public A(B b){
this.b = b
}
② setter方式注入:
public void setB(B b){
this.b = b
}
③反射注入:
A a = new A();
Field field = a.getClass().getDeclaredField("b");
field.setAccessible(true);
field.set(a, 1);
date:2019-11-19; qq:981722659;author:wjw
网友评论