spring之IOC(控制反转)和DI(依赖注入)

时间:2022-07-23
本文章向大家介绍spring之IOC(控制反转)和DI(依赖注入),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

IOC:思想是反转资源获取的方向。传统的资源查找方式要求组件向容器发起请求查找资源,作为回应,容器适时的返回资源。而应用了IOC之后,则是容器主动地将资源推送给它所管理的组件。组件所要做的仅仅是选择一种合适的方式来接收资源,这种查找方式也被称为查找的被动形式。

DI:IOC的另一种表述形式。即组件以一些预定义好的方式(例如:setter方法)接受来自如容器的资源注入。相对于IOC而言,这种表述更为直接。

举个例子:

需求,从容器中获取A的对象,并使B对象中的a属性被赋值为容器中A对象的引用。

class A{
    
    
}
class B{
    private A a;
    public void setA(A a) {
        this.a = a;
    }
}

传统的方式:

首先获取对象:A a = getA();B b = getB();

然后调用方法:b.setA(a) ;

即我们要先获取所有的对象,然后将其中某个对象作为参数传给另一个对象。

使用IOC容器之后:

IOC容器内部会自动为我们建立其之间的关系,获取时我们只需要B b = getB()即可。