Spring中控制反转(IoC)/依赖注入(DI)说的是一回事吗?只是名字不同?新出的Spring3里是哪一个?
控制反转(IoC=InversionofControl)IoC,用白话来讲,就是由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反...
控制反转(IoC=Inversion of Control)IoC,用白话来讲,就是由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在:(依赖)控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。
所谓依赖注入,即组件之间的依赖关系由容器在运行期决定,形象的来说,即由容器动态的将某种依赖关系注入到组件之中。
正在业界为IoC争吵不休时,大师级人物Martin Fowler也站出来发话,以一篇经典文章《Inversion of Control Containers and the Dependency Injection pattern》为IoC正名,至此,IoC又获得了一个新的名字:“依赖注入(Dependency Injection)”。
为什么有的教程介绍IoC有的介绍DI?有的都介绍,它们概念原理不一样,到底是不是同一个东西??? 展开
所谓依赖注入,即组件之间的依赖关系由容器在运行期决定,形象的来说,即由容器动态的将某种依赖关系注入到组件之中。
正在业界为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已经是比较成熟的容器框架,所以大多数人的设计,主要还是考虑到底需要依赖注入什么。
其实本质上,主要优势就是通过接口解耦合,然后使用容器配置文件,组织bean的运行,扩展性更强,也便于灵活地用于大粒度的模块,组件级编程。Spring已经是比较成熟的容器框架,所以大多数人的设计,主要还是考虑到底需要依赖注入什么。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询