一文带你熟悉SpringIOC

Spring的IOC:

IOC是Spring的一个核心组件,理解IOC是迈向Spring大门的重要一步

Spring框架

现实生活中,我们写字用的笔会有多种颜色,为了做不同的标记,需要用不同颜色的笔。如果只是使用一两种的话那还好说,但如果是要同时用到五六种颜色的笔,会很麻烦。

  • 承接上面问题,既然同时带那么多只笔很麻烦,那么我们可以考虑带多只笔芯、一只笔壳:然后需要哪种就套上哪种,方便携带。
  • 这就类似于Spring的IOC,IOC翻译过来就是**“控制反转”:我们需要搞清楚两个点(控制什么?谁来控制)***
  1. 控制什么?就跟我们控制笔芯颜色一样,SpringIOC控制的是对象之间的依赖关系。
  2. 谁来控制?在没有使用一壳多笔芯之前,我们使用哪一种笔都是制造商来提供的;而在使用了之后,就反转成了由我们使用者自己来控制了。
  • 我们在开发中,创建的类之间耦合度极高,如下:创建一个笔类,如果要使用红色笔芯就要单独去创建红色笔芯的类,然后再去调用。
public class pen {
    private Refill refill = new RedRefill();

    public void use(){
        System.out.println("使用红色笔芯的笔");
    }
}
上面是创建红色笔芯的类,但如果要创建蓝色笔芯、黑色笔芯则要额外去进行编写:
public class pen {
    private Refill refill = new BlueRefill();

    public void use(){
        System.out.println("使用蓝色笔芯的笔");
    }
}

public class pen {
    private Refill refill = new BlackRefill();

    public void use(){
        System.out.println("使用黑色笔芯的笔");
    }
}
缺点:耦合度太高,重复代码量多,用得不爽。
  • 那么,IOC控制的是:在创建笔对象时把红色笔芯的对象注入进去笔壳对象,这就是控制对象之间的依赖关系,而这个过程不用我们自己做,SpringIOC自动帮我们做好:
    注入关系图
    因为是一个对象注入另一个对象,所以我们也把这种现象称为依赖注入,即DI()Dependency Injection)
  • 控制的对象也发生了变化,对象的控制权交由了IOC容器,我们需要做的:是去编写一些IOC的配置文件,然后负责使用IOC创建这个对象就好了。

最后我们来总结以下:IOC是Spring的一个核心组件,理解IOC是迈向Spring大门的重要一步。IOC即控制反转,我们平时创建对象的脏活以后都由IOC来完成,因此代码之间的耦合度将显著降低。随心所欲的创建,随心所欲的玩起Spring吧。

猜你喜欢

转载自www.cnblogs.com/limaoshe/p/12550576.html