Fork me on GitHub

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()即可。 

posted @ 2020-01-04 16:31  西西嘛呦  阅读(190)  评论(0编辑  收藏  举报