关闭

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

标签: spring
262人阅读 评论(0) 收藏 举报
分类:

控制反转(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已经是比较成熟的容器框架,所以大多数人的设计,主要还是考虑到底需要依赖注入什么。


0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Java面试-Spring IOC(控制反转)和DI(依赖注入)

IOCIoc(Inversion of Control)翻译成中文就是“控制反转”,一个比较晦涩的词语。如果要真正理解这个词语,必须要用过Spring框架才行,因为Spring开启了一种新的编程方式。...
  • u010902721
  • u010902721
  • 2016-10-04 23:18
  • 1306

spring四种依赖注入方式 ( 依赖注入DI+ 控制反转IOC的原理)

平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程...
  • baoendemao
  • baoendemao
  • 2014-04-28 13:06
  • 1586

控制反转(IOC)和依赖注入(DI)的区别

IOC   inversion of control  控制反转 DI   Dependency Injection  依赖注入 要理解这两个概念,首先要搞清楚以下几个问题: 参与者都有谁?依赖:...
  • doris_crazy
  • doris_crazy
  • 2014-01-16 11:23
  • 25401

spring框架学习之路(一)-入门基础(1)-IOC(控制反转)&DI(依赖注入)

所谓“控制反转”,将控制权从程序自身转移到第三方(在spring中就是指applicationContext.xml文档)。 依赖注入,其实是IOC的另一种解释。用DI的设计思想,就是我们可以先创建被...
  • qq_22222663
  • qq_22222663
  • 2017-11-04 15:46
  • 272

Spring框架中IOC控制反转和DI依赖注入区别

IOC控制反转:说的是创建对象实例的控制权从代码控制剥离到IOC容器控制,实际就是你在xml文件控制,侧重于原理。 DI依赖注入:说的是创建对象实例时,为这个对象注入属性值或其它对象实例,侧重于...
  • admin1973
  • admin1973
  • 2017-02-22 14:06
  • 289

Spring框架之依赖注(DI)和控制反转(IOC)的理解,写的太好了

前言关于这个话题, 网上有很多文章,这里, 我希望通过最简单的话语与大家分享. 依赖注入和控制反转两个概念让很多初学这迷惑, 觉得玄之又玄,高深莫测. 这里想先说明两点: 1,依赖注入和控...
  • yccowdy
  • yccowdy
  • 2017-12-13 19:17
  • 57

码农小汪-spring框架学习之2-spring IoC and Beans 控制反转 依赖注入 ApplicationContext BeanFactory

spring Ioc依赖注入控制反转其实这个东西很好理解的,并不是那么的复杂。当某个Java对象,需要调用另一个Java对象的时候(被依赖的对象)的方法时。以前我们的做法是怎么做呢?主动的去创建被依赖...
  • u012881904
  • u012881904
  • 2016-04-10 22:41
  • 2681

Java仿Spring框架IOC控制反转利用反射简单实现(源码)

  • 2017-12-11 11:19
  • 293KB
  • 下载

Spring IOC(控制反转)和DI(依赖注入)

一、分享Iteye的开涛对Ioc的精彩讲解   首先要分享的是Iteye的开涛这位技术牛人对Spring框架的IOC的理解,写得非常通俗易懂,以下内容全部来自原文,原文地址:http://jinni...
  • LeiXiaoTao_Java
  • LeiXiaoTao_Java
  • 2017-04-14 13:46
  • 239

spring之IOC控制反转和DI依赖注入

Ioc—Inversion of Control,即“控制反转”,是一种设计思想。 传统方式是需要什么对象就new什么对象,完全是由自己定义自己创建自己销毁的,控制权在自己手上。用了IOC之后,控制...
  • wanderlustLee
  • wanderlustLee
  • 2018-01-04 20:48
  • 23
    个人资料
    • 访问:281243次
    • 积分:5003
    • 等级:
    • 排名:第6531名
    • 原创:201篇
    • 转载:151篇
    • 译文:0篇
    • 评论:65条
    文章分类
    最新评论