亲宝软件园·资讯

展开

一文带你熟悉SpringIOC

阿狸主题曲 人气:0
Spring的IOC: >**IOC是Spring的一个核心组件**,理解IOC是迈向Spring大门的重要一步 ![Spring框架](https://gitee.com/alztq/learn_images/raw/master/https://gitee.com/alztq/learn_images/Spring1.jpg) >现实生活中,我们写字用的笔会有多种颜色,为了做不同的标记,需要用不同颜色的笔。如果只是使用一两种的话那还好说,但如果是要同时用到五六种颜色的笔,会很麻烦。 - 承接上面问题,既然同时带那么多只笔很麻烦,那么我们可以考虑带多只笔芯、一只笔壳:然后需要哪种就套上哪种,方便携带。 ![](https://gitee.com/alztq/learn_images/raw/master/https://gitee.com/alztq/learn_images/电脑图片2.png) - 这就类似于Spring的IOC,IOC翻译过来就是**“控制反转”:我们需要搞清楚两个点(控制什么?谁来控制)*** 1. 控制什么?就跟我们控制笔芯颜色一样,SpringIOC控制的是对象之间的依赖关系。 2. 谁来控制?在没有使用一壳多笔芯之前,我们使用哪一种笔都是制造商来提供的;而在使用了之后,就反转成了由我们使用者自己来控制了。 ![](https://gitee.com/alztq/learn_images/raw/master/https://gitee.com/alztq/learn_images/电脑图片2.png) - 我们在开发中,创建的类之间耦合度极高,如下:创建一个笔类,如果要使用红色笔芯就要单独去创建红色笔芯的类,然后再去调用。 ```java 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自动帮我们做好: ![注入关系图](https://gitee.com/alztq/learn_images/raw/master/https://gitee.com/alztq/learn_images/注入.PNG) 因为是一个对象注入另一个对象,所以我们也把这种现象称为**依赖注入,即DI()Dependency Injection)**。 - 控制的对象也发生了变化,对象的控制权交由了IOC容器,我们需要做的:是去编写一些IOC的配置文件,然后负责使用IOC创建这个对象就好了。 ![](https://gitee.com/alztq/learn_images/raw/master/https://gitee.com/alztq/learn_images/IOC概念.PNG) >最后我们来总结以下:**IOC是Spring的一个核心组件**,理解IOC是迈向Spring大门的重要一步。**IOC即控制反转,我们平时创建对象的脏活以后都由IOC来完成**,因此代码之间的耦合度将显著降低。随心所欲的创建,随心所欲的玩起Spring吧。

加载全部内容

相关教程
猜你喜欢
用户评论