Spring IOC

本文深入解析了Spring框架中的IOC(控制反转)概念,通过逐步的代码示例展示了如何从手动创建对象到利用IOC容器管理对象。讨论了依赖注入与控制反转的关系,并通过一个用户与车辆的例子来阐述这一思想。最后,通过实际的Spring配置及测试类展示了IOC的使用,帮助读者更好地理解和应用IOC。
摘要由CSDN通过智能技术生成

目录

一、什么是IOC

二、代码示例


java发展到这个阶段可以说Spring框架功不可没,这个是一个超牛的框架,即便是目前最火的Springboot也离不开Spring框架的支持,或者说是Spring框架的一个升级。这篇文章主要是对Spring框架的IOC思想进行一个讲解。帮大家体会这种思想的使用。也会通过一个使用案例来解释说明。

一、什么是IOC

IOC全名叫做控制反转。英文名是Inversion of control。有些时候也叫作依赖注入,其实这是俩不同的概念。有些时候把他们划等号是因为描述的是一个功能,从两个角度来分析。

既然名字叫做IOC我们来看看,控制什么,反转什么。

1、控制什么:控制对象的创建和销毁,指的是控制对象的生命周期。

2、反转什么:之前我们创建一个对象都是new,现在有了IOC了,指的是把对象的控制权交给了IOC容器。

这俩概念如果你还不理解,可以看下面一个简单的案例,来体会一下这个控制反转的思想。

假如说有一个用户,有一辆车,每天就干两件事,那就是上学和回家。

阶段一:用户自己创建一辆车完成功能

首先定义一辆车:

然后用户是这样来实现:

 

现在使用是用户自己创建一辆车完成上班下班的功能,肯定是不合理。因为用户只是想用一辆车来完成上班下班的功能,每次回家之前先造一辆车太麻烦了。怎么办呢?干脆用户需要车的时候,给他传过去一辆。

阶段二:给用户传递一辆奔驰车来完成功能

如果给用户传递呢?方法很简单,只需要在用户的构造方法上,加一个车的参数即可。

 

现在貌似实现了我们的功能,用户需要一辆车的时候,只需要给他传递过去一辆车即可,没毛病吧,但是果断时间需求又变了,用户又买了一辆宝马,不想用奔驰了。于是我们手忙脚乱的改,把所有的奔驰类全换成宝马类,有过一段时间用户又买了一辆奥迪,又开始手忙脚乱的改,这也太麻烦了。干脆把所有的车换成一个接口。

阶段三:给用户传递一辆车完成功能(不是具体的车)

于是,我们先定义一个car接口,然后让奔驰宝马实现这个接口就好了。

 

然后我们的用户类里面只需要给他传递一辆车,不指定是什么车。

 

现在完事具备,好像已经很完美了,用户上学回家的过程,使用什么车,给他传递一辆就OK了,但是我们想过没有,谁给用户传递的,难道我们在测试的时候,自己写代码先new一辆嘛?用户第二天还想用宝马,难道我们再new一辆嘛?而且如果用户每天换一辆,而且有十几辆车,怎么办呢?假如又有一个新用户,也想实现上面的功能,这时候就需要想办法了。

干脆呀,把这些车全部放在一个容器内,需要的时候拿出来就好了,就不用我们自己创建一个给用户了。这样不管是谁想要车,什么时候想要车,需要的时候去这个容器内去拿就好了。这时候就是一个控制反转的思想,我们把车的创建销毁交给容器,而且控制权给容器。对我们来说,我们只是使用的功能。

现在我们使用一下SpringIOC,通过案例进一步了解其思想。

二、代码示例

第一步:添加依赖

 

在这里我使用的是5.2的版本。

第二步:在main文件夹下的resources目录下,新建Spring.xml文件

 

注意在这里,我们注入进来了两个bean,一个是奔驰类,一个是宝马类,并分别给他们一个id。只需要这两行代码就相当于把两辆车放到了IOC容器。

第三步:新建一个MyTest测试类

 

案例很简单,首先和容器链接起来,然后拿到我们的bean,最后再去使用,现在你会发现,不管是哪一个用户在什么时候用哪一个bean,都可以从我们的容器内去获取。是不是很简单。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值