顾名而思义---深入理解spring中IOC的概念

在学习Spring框架的过程中,大家都会遇到IOC(Inverse of Control)的概念,翻译成中文,即是控制反转的意思。事实上笔者在第一次接触到这一概念的时候,也是一头雾水,怎么控制?怎么反转?

当然,从字面上理解这一概念,会陷入到咬文爵字,最后顶多是知其然而不知其所以然的怪圈,要想深入的理解IOC的概念,还需要理解这一运行机制的原理以及达到的目的。

以下部分分为分析和实验


分析

我们可以将Spring理解成一个大工厂,可以将所有对象创建和依赖关系的维护,都交给Spring管理。既然是工厂,那么总要生产工具的,而Spring工厂就是用于生成bean

下面来分析一个需求,要new一个对象,并且调用它的方法,我们如何处理?

和初接触Java的朋友想法一样,我们使用一个类,直接new一个对象,调用它的方法即可。这种情况下,创建对象的权限由开发者手动控制(Control)

而在spring中,将由Spring创建对象实例,那么这个过程就是IOC:将创建对象的权限(Control)反转(Inverse)给了spring。因此之后我们需要实例化对象时,从Spring中获得即可。




实验

1.导入jar包以及依赖。


2.编写目标类和接口

a)接口


b)实现类



3.编写配置文件


bean标签中有两个字段,其中:

Class:需要创建实例的全限定类名。既然需要Spring帮我们生产对象,那我们必须提前让Spring知道类的信息,因为这个类以后要交给Spring控制,即将这个类的控制权限(Control)反转(Inverse)给了Spring。


Id:以后我们从Spring容器获得实例时使用的名字,可以理解为Spring为这个Bean起的别名。

4.Junit测试


测试表明,两者输出结果一样。


结束语

闻道有先后,术业有专攻。遇到问题不要灰心,觉得为什么别人能理解,我怎么理解不了。其实弄懂了原理后,一切就水到渠成了。这种情况下,多花点时间也是值得的了!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容