第六天学习

 谁控制谁,反转了什么?

        今天我们开始接触spring框架,学习这个框架前,我们首先要了解一下什么是IOC(控制反转)和DI(注入依赖)这两个概念,对于很多初学者来说,这两个概念总是模糊不清的,也是非常难理解的,我们这节课就来聊聊控制反转和注入依赖的区别,也就是IOC和DI的区别!

IOC是什么?

        ioc就是控制反转,不是什么技术,而是spring中的一种思想。在spring中,ioc意味着将你设计好的对象交给spring的容器进行控制,而不是传统的在你对象内部进行控制。

  说白了,就是不需要你再去实例某个类,并给这个类的n多个属性进行赋值,这些实例出某个对象并给对象添加属性的操作,都是非常繁琐的事情。而ioc就是将这些繁琐的事情交给了spring的容器。

控制反转,是什么意思?   

        在我们传统的java开发中,也就是没有使用框架的开发中,我们都是在对象内部通过new进行创建对象,是程序主动去创建程序所依赖的对象,而spring呢,使用ioc容器控制了对象,当然,真正在spring中,控制的不一定是项目中的对象,也有一些其他的,比如说文件。 

  至于反转,是相对来说的。我们传统开发,也就是类中创建对象的方式就是所谓的“正转”,那现在不需要对象来创建对象了,而是容器帮我们查找并注入依赖对象,而对于对象来说,他们只是被动的接受了创建,所以是反转。总的来说,依赖对象的获取被反转了。

IOC能做什么?  

        我前面说过,ioc不是一种技术,而是一种思想,是spring的面向对象编程的法则。使用控制反转,我们能设计出松耦合、更加优良的程序。在传统的编程中,我们在对象中创建对象,一旦前者有改动,很容易影响到后者,所以耦合度相对来说较高,而控制反转就是解决了这个问题。 

  再一个,我们使用了ioc的思想后,把创建和查找依赖对象的任务交给了容器,由容器统一注入对象,这样也方便我们开发过程中查找、修改、测试。试想一下,一百个对象在项目创建的话,是分布在一百个类中方便我们查看,还是在一个配置文件中方便我们查看?

什么是DI?

        DI,就是“依赖注入”,组件(可以暂且理解为上面的对象)之间存在依赖关系,这些关系就是由容器在运行期决定,说白了,就是由容器动态的将某个依赖关系注入到组件之中。 

  依赖注入的目的,并不是为了软件系统能实现更多的功能,而是为了提升组件重用的频率,搭建一个更加灵活、可扩展的平台。想象一下,哪个对象中需要实例哪个对象,我们可以在配置文件中像操作开关一样的改变,不是方便了很多吗?

 

 


说的通俗易懂一些,控制反转就是把对象的控制权交给了spring容器,注入依赖就是帮助容器去管理这些对象之间的关系。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值