spring框架的控制反转(IoC)和注入依赖(DI)

控制反转(IoC=Inversion of Control)IoC,用白话来讲,就是由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在:(依赖)控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。
所谓依赖注入,即组件之间的依赖关系由容器在运行期决定,形象的来说,即由容器动态的将某种依赖关系注入到组件之中。
正在业界为IoC争吵不休时,大师级人物Martin Fowler也站出来发话,以一篇经典文章《Inversion of Control Containers and the Dependency Injection pattern》为IoC正名,至此,IoC又获得了一个新的名字:“依赖注入(Dependency Injection)”。
为什么有的教程介绍IoC有的介绍DI?有的都介绍,它们概念原理不一样,到底是不是同一个东西???


同一件事,强调的内容不同而已。IoC控制反转,强调容器的作用,用于组织或控制容器内bean的运行。DI依赖注入,强调Bean需要外部注入才能正常运转。相对地说做容器框架的(比如Spring)当然强调控制了,怎么更好的控制别的Bean的运行,相反做模块的,当然强调注入了,我到底需要依赖注入什么。
其实本质上,主要优势就是通过接口解耦合,然后使用容器配置文件,组织bean的运行,扩展性更强,也便于灵活地用于大粒度的模块,组件级编程。Spring已经是比较成熟的容器框架,所以大多数人的设计,主要还是考虑到底需要依赖注入什么。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值