- 1
- 0
- 约1.04万字
- 约 10页
- 2019-09-16 发布于江西
- 举报
Spring的IoC控制反转与DI依赖注入详解
文章分类: Java编程
??? 学习Spring,所有教程都是从IoC和DI开始的,但是大部分教程对它们的介绍都很抽象,要是之前没系统的学习过设计模式的话理解起来就非常吃力。所以在这里我尽我的能力来解释这两个概念。 首先的重点,IoC并不是Spring特有的,它是一种设计模式,事实上只要掌握了原理,自己也可以写出一个IoC的实现方法。 一、DI(Dependency Injection)依赖注入可以称为IoC(Inversion of Control)控制反转,但是IoC不等于就是DI ??? 这一点是很多初学者很容易产生错误的一个概念,因为很多教程都把DI和IoC放在一起说,就像堆和堆栈一样,容易让初学者以为他们就是同一个东西,这个是需要纠正的。 ??? 简单的解释,就是IoC包括了DI,但是IoC还包括了另外一个叫做DL(Dependency Lookup)依赖查找的功能。你可以先简单的把IoC当作是某种操作,DI是这种操作的写入方式,而DL是查找方式,这样可能容易区分一点。 ??? DL之所以很少有人提起,是因为我们平时很少用到,所以也就慢慢被遗忘了,但是这也不代表它就不存在了。可惜我自己也对DL没有去花时间了解,只是知道有这么个东西,所以在这暂时也没法去详细介绍了,如果有高手的话请指点一下! 二、什么叫做IoC(Inversion of Control)控制反转 ??? 这一段是纯理论的介绍,从别的地方直接抄过来的,先看一遍,不懂也没关系,下面我会举例来说明:
引用
什么是Inversion of Control ??????? 控制反转。在Java开发中,IoC意味着将你设计好的类交给系统去控制,而不是在你的类内部控制。这称为控制反转。 IoC的原理 ??????? 不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器负责将这些联系在一起。其原理是基于OO设计原则的The Holly wood Principle:Dont call us, well call you(别找我,我会来找你的)。也就是说,所有的组件都是被动的(Passive),所有的组件初始化和调用都由容器负责。组件处在一个容器当中,由容器负责管理。简单的来讲,就是由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在:控制权由应用代码中转到了外部容器,控制权的转移,这就是反转。
???? 如果你只需要看这段文字介绍就能理解什么叫IoC了,那下面的那些也就不用看了,大侠! ???? 如果你也跟我一样属于笨的那种,那么可以看一下我下面的介绍: 我们沿用之前的HelloWorld的例子来介绍IoC。 假设我要跟我们家的邻居去打招呼,但是我又懒得出门,所以我干脆造了一个机器人代替我去打招呼了(这得要多宅的一个人啊! 宁可造个机器人也不想出个门)。 1、首先我们传统的编程方式是这样的: 先建立一个Robot类,然后类里面实现一个喊话的方法,然后实现方法里创建一个机器人的实例来调用喊话: Robot类:
Java代码 ? \o 收藏这段代码
package?com.iteye.bolide74.action; ??
??
public?class?Robot?{ ??
????public?String?name; ??
????public?String?color; ??
????public?double?height; ??
????public?double?width; ??
????public?double?weight; ??
??
????public?Robot(String?name,?String?color,?double?height,?double?width, ??
????????????double?weight)?{ ??
?????????=?name; ??
????????this.color?=?color; ??
????????this.height?=?height; ??
????????this.width?=?width; ??
????????this.weight?=?weight; ??
????} ??
??
????public?void?Speak(String?msg)?{ ??
????????System.out.println(msg); ??
????} ??
}??
实现类:
Java代码 ? \o 收藏这段代码
package?com.iteye.b
您可能关注的文档
- 转 柴油机震动原因分析.doc
- 【X庚短篇集】(源庚、浩庚、13庚、海庚、范庚).docx
- 彩色电视机解析毕业黑色及.doc
- 论现代化宪法观念与民主新农村建设的关系.doc
- 关于电脑维修的创业企划书.doc
- 美国节日介绍.ppt
- 动画概论 第五章.ppt
- 英语系学生毕业论文.doc
- 铁路营业线施工安全知识培训教材内容(周).ppt
- 网络环境下的影视资源与名著导读.doc
- 统编版2025年春季新版七年级下册历史 第21课 明清时期的科技与文化 教案.docx
- 雅安雨城法院书记员招聘考试真题库2025.docx
- 2026届安徽合肥市高考一模高考语文试卷试题(含答案详解).pdf
- 【专题研究】国内外城市更新研究的最新进展.pdf
- 【专题研究】老旧城区改造居民满意度影响因素研究——以遂宁市老旧城区改造为例.pdf
- 【专题研究】关于旧城空间改造理论与创意设计案例的几点思考.pdf
- 西藏拉萨市高三下学期期末物理备考重点详解.docx
- 泾县法院书记员招聘笔试真题2025.pdf
- 2026年春【苏教版】-六年级数学下册-面积的变化.pptx
- 2026年春【苏教版】-六年级数学下册-7.pptx
最近下载
- 市级课题结题报告-“双减”背景下小学数学课堂开展学生“项目式学习”的实践研究(优秀等次).docx VIP
- 哈露巴露口服液在制备抗肿瘤产品中的应用.pdf VIP
- 铣工工艺学(第五版)习题册马苍平课后习题答案.pdf
- 2025江苏中职职教高考《机电一体化-机械基础》讲义知识考点复习资料.docx VIP
- 2025年拍卖师拍卖场地文化墙与历史回顾区布置专题试卷及解析.pdf VIP
- 民兵化学洗消培训课件.ppt VIP
- 科技内容教学知识(tpack)理论架构对教师专业发展之启示.pdf VIP
- 装饰设计客户需求问卷调查表范本模板.docx VIP
- 民宿概论 课件全套 第1--9章 绪论、民宿市场--- 民宿概论.pptx
- 搅拌站自查报告(共6).docx
原创力文档

文档评论(0)