02,Spring IOC的概念

V哥官网:http://www.vgxit.com

本博客对应视频教程:http://www.vgxit.com/course/23


Spring IOC概念


1,IOC思想:

我们Java是一个面向对象的语言。我们在开发的时候肯定要使用到大量的对象。我们使用的怎么对象是怎么来的?按照我们以前的知识,我们可能会通过调用构造器来创建一个。也有可能是我们通过写一个单例方法然后来获取到的。还有可能是我们自己反射出来的。但是Spring就提供了另外一种获取对象的更好的方案,就是IOC(控制反转)

原始方式创建对象类比

老师用吃饭来举例。同学们肚子饿了,想要吃饭。像老师小时候是和我的外婆外公在农村生活。当时村里也没有什么饭店之类的。老师肚子饿了,外婆要给我做饭会怎么做?首先,家里面得有锅,碗,瓢,铲子等基本的工具。然后还要有盐,有肉,有蔬菜,有米饭等食材。然后还要有柴火用来生活。然后外婆还需要控制好炒菜的时候放多少油,放多少盐,放多少菜,放多少肉,放多少水。然后最终加工出一桌饭菜出来。这个过程我们可以看如下流程图:

我们可以看出来,整个流程,我们要吃饭,我们是主动去做饭。这个和我们以前编写代码的时候要使用某个类一样的。我们需要使用某个类了,我们会主动去创建一个类。如果这个类的构造方法需要各种参数,那么我们还需要提前准备好各种参数。对于我们来说就无形的增加了很多工作量。

IOC创建对象方式类比

IOC的思想,我们还是用吃饭来举例。到了后来,老师参加工作了,来到了城市。老师就比较懒了。不喜欢自己做饭。这个时候在饿了吗,美团上面有大量的外卖店,老师要吃饭只需要做这样一个事情,我只需要在手机上选择我想要吃哪些饭菜就行了。至于哪些餐饮商店到底是怎么做的,每道菜用了多少的油,多少的盐,用多大的火,我一概不用关心,我只需要告诉餐饮店我需要什么菜就行。这个方式的流程图如下:

总结:

通过上面的两个例子的讲解。同学们应该IOC有一个初步的认识。我们在Spring中就是通过IOC容器来帮助我们实现控制反转的。而实现IOC的方式用的就是依赖注入(Dependency Injection)DI。这个就好比前面的例子,我们下单之后,食材去哪里采购,制作的时候需要如何控制调味,放多少油,用什么打包盒,一切的一切我们都不需要去操心,这些事情就是别人给我们已经做好了,我们只需要下单就可以吃饭。


2,引出Spring IOC容器:

我们通过上面的介绍已经对控制翻转有了一个初步的认识。但是接下来我们再深入的讨论一下其中的问题。

就比如,我们点外卖,商家为我们做饭菜。做饭菜的时候需要米,肉,菜,做好了之后还需要包装盒。对于这些食材和包装盒,商家也不需要太过于关心肉是怎么来,米是谁种出来等等。商家只需要有钱向猪肉采购商和大米采购商等采购就行了。

那么我们可以看出,我么要吃这顿饭,老师是依赖于外卖平台,外卖平台依赖于餐饮店,餐饮店有依赖于各种采购商,各种采购商可能又会依赖于农民。我们在软件开发的时候也会有同样的问题,我们 要创建一个对象,这个对象依赖于其他对象,其他对象又依赖其他对象。

Spring里面就可以解决这种以来链的问题。Spring给我们提供一个东西叫做IOC容器,IOC容器就管理着各种资源。我们要以来的对象让Spring给我们创建好,然后存放在IOC容器中,我们需要使用的时候,直接去Spring容器中获取就好了。至于IOC原理是怎么回事,我们之后会讲。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

V哥学It

赏小的一个钱吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值