spring控制反转

1.spring的控制反转是什么意思?

控制表示创建对象的权限。
反转表示将该权限从具体的类转移给spring容器。

示例:
类与类之间的依赖关系:

public class Uzi {
    private XiaoHu xiaohu;
    public void setXiaohu(XiaoHu xiaohu){
        this.xiaohu = xiaohu;
    }
}

class XiaoHu{
    private Xiaoming xiaoming;
    private String role = "Ryze";
    public void setXiaoming(Xiaoming xiaoming){
        this.xiaoming = xiaoming;
    }
}

class Xiaoming{
    private String role = "Blitzcrank";
}
  • 正常情况下使用对象时的情况为:
class Use{
    public static void main(String args[]){
        Xiaoming xiaoming = new Xiaoming();
        XiaoHu xiaoHu = new XiaoHu();
        xiaoHu.setXiaoming(xiaoming);
        Uzi uzi = new Uzi();
        uzi.setXiaohu(xiaoHu);
    }
}

这种情况下,都是在合适的位置按需创建对象。

  • spring控制反转后使用对象的情况为:
XML配置好对象之间的依赖关系。
通过容器的getBean方法获取对象。
2.为什么要使用控制反转?
  1. 原始的依赖注入通过set方法完成,当对象依赖过于复杂时,每次创建一个对象(例如uzi),需要创建多个依赖的对象(例如xiaoming,xiaohu),再通过set一一进行注入。这样较麻烦。
  2. 通过spring控制反转,只需要在xml中配置依赖关系,直接通过容器获取对象即可,不需要在代码中手动注入依赖,十分方便。

你可能感兴趣的:(spring)