1.IoC是什么?

IoC(Inversion of Control)控制反转,IoC是一种新的Java编程模式,目前很多轻量级容器都在广泛使用的模式。

2.IoC解决了什么问题?

在IoC出现以前,组件之间的协调关系是由程序内部代码来控制的,或者说,以前我们使用New关键字来实现两组间之间的依赖关系的。

这种方式就造成了组件之间的互相耦合。IoC(控制反转)就是来解决这个问题的,它将实现组件间的关系从程序内部提到外部容器来管理。

也就是说,由容器在运行期将组件间的某种依赖关系动态的注入组件中。

3.IoC的实现方式 及 与DI的关系?

(1).依赖查找(Dependency Lookup):容器中的受控对象通过容器的API来查找自己所依赖的资源和协作对象。

这种方式虽然降低了对象间的依赖,但是同时也使用到了容器的API,造成了我们无法在容器外使用和测试对象。

依赖查找是一种更加传统的IoC实现方式。

(2).依赖注入(Dependency Injection):这就是DI,字面上理解,依赖注入就是将服务注入到使用它的地方。对象只提供普通的方法让容器去决定依赖关系,

容器全权负责组件的装配,它会把符合依赖关系的对象通过属性(JavaBean中的setter)或者是构造子传递给需要的对象。

相对于IoC而言,依赖注入(DI)更加准确地描述了IoC的设计理念。所谓依赖注入,即组件之间的依赖关系由容器在应用系统运行期来决定,

也就是由容器动态地将某种依赖关系的目标对象实例注入到应用系统中的各个关联的组件之中。

4.Spring中的IoC与DI:

IoC是Spring的核心,贯穿始终。对于Spring框架来说,就是由Spring来负责控制对象的生命周期和对象间的关系。

Spring中DI有两种实现方式---Setter方式(传值方式)和构造器方式(引用方式)。

分享到:

2011-03-18 16:35

浏览 2942

评论

请简述什么是spring的ioc和di_Spring中的IoC与DI的理解相关推荐

  1. 请简述什么是spring的ioc和di_请简述什么是 Spring 的 IoC 和 DI?_学小易找答案

    [连线题]把微生物和适用的生物反应器连线 [判断题]混凝土保护层是指从混凝土表面到箍筋公称直径外边缘之间的最小距离. [多选题]下列哪些问题是我们人类目前面临的严峻生态环境问题? [单选题]这是什么器 ...

  2. 请简述什么是spring的ioc和di_理解Spring中的IoC和DI

    什么是IoC和DI IoC(Inversion of Control 控制反转):是一种面向对象编程中的一种设计原则,用来减低计算机代码之间的耦合度.其基本思想是:借助于"第三方" ...

  3. java中ioc作用_Spring中的IOC是什么意思,为什么要用IOC而不是New来创建实例?

    这里是修真院后端小课堂,每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方面深度解析后端知识/技能,本篇分享的是: [Spring中 ...

  4. java中ioc作用_java中的ioc是什么

    java中的ioc是什么 发布时间:2020-06-03 20:01:10 来源:亿速云 阅读:174 作者:Leah java中的ioc是什么相信大部分人都不太了解,为了让大家更加了解,小编给大家总 ...

  5. 请简述什么是spring的ioc和di_绿茶用什么茶叶罐储存?有6种茶叶罐适合

    阅读本文前,请您先点击上面蓝色字体"茶间友舍"再点击"关注",这样您就可以免费收到我们的最新内容了,每天都会有更新,完全是免费订阅,请放心关注. 几片茶叶,被浸 ...

  6. 请简述什么是spring的ioc和di_小编Spring是什么、spring容器、IOC和DI

    1.Spring (1)Spring是什么? 是一个轻量级的.用来简化企业级应用开发的开发框架. 注: a.简化开发: Spring对常用的api做了简化,比如,使用Spring jdbc来访问数据库 ...

  7. Android 进阶 教你打造 Android 中的 IOC 框架 【ViewInject】 (下)

    上一篇博客我们已经带大家简单的吹了一下IoC,实现了Activity中View的布局以及控件的注入,如果你不了解,请参考:Android 进阶 教你打造 Android 中的 IOC 框架 [View ...

  8. ASP.NET Core中使用IOC三部曲(二.采用Autofac来替换IOC容器,并实现属性注入)

    上一篇ASP.NET Core中使用IOC三部曲(一.使用ASP.NET Core自带的IOC容器) ,我们说过ASP.NET Core中自带的IOC容器是属于轻量级的,功能并不是很多,只是提供了基础 ...

  9. 原创经典-为什么Spring中的IOC(控制反转)能够降低耦合性(解耦)?

    学到Spring老师一定会讲一句话:IOC能够降低耦合性.可是为什么会降低耦合性,许多老师就讲不清了或者干脆不讲,下面我们通过举一些栗子,一步一步地说明为什么IOC能够降低耦合性. 前言 通过本文你将 ...

最新文章

  1. iOS 汉字转拼音 PinYin4Objc
  2. php插入日志到数据库,对象转json
  3. word精华样式篇之三使用样式集让所有文档风格统一
  4. linux c 定时器
  5. 二分查找or折半查找
  6. Python类和对象的入门级讲解(简单粗暴)
  7. oracle-不完全数据库恢复-被动恢复-ORA-00313/ORA-00366
  8. 【BZOJ 3990】 [SDOI2015]排序
  9. CAD迷你看图v4.4.3 for Mac 小巧而全面的CAD看图工具
  10. 自定义智能报表系统内容准备:基于WEB的SBO数据结构浏览器
  11. keepalived+nginx,haproxy
  12. rho是什么 matlab,RHO值是什么?如何理解RHO值?
  13. ps动感映像插件ImageMotion 1.3全新功能介绍
  14. 微信小程序实现微信APP上的扫一扫扫码跳到小程序对应的结果页面和签字等功能
  15. (1)js数组常用方法 splice()、slice()、push()、unshift()、pop()、shift()、join()、reverse()、sort()、concat()、split()
  16. 西门子官网下载Eplan部件库
  17. elementui后台管理demo
  18. c++手机编程软件_积木编程软件手机版下载-积木编程软件下载v1.0.1 安卓版
  19. 邮件协议rfc822文档
  20. [CCD] CCD感光模块的尺寸是怎么算的?

热门文章

  1. digester rule
  2. 为何总有那么多欠缺?
  3. 爬虫实战——爬百思不得姐
  4. python消息队列中间件_常见的消息队列中间件介绍
  5. 按照指定模板导出EXCEL
  6. LeetCode中等题之TinyURL 的加密与解密
  7. 计算机毕业设计(附源码)python中医保健系统
  8. 都在做数字资产的登记、流转:他们提出的八大创新治标还是治本了?
  9. C语言 扫雷(含递归展开)
  10. Python学习: hasattr()、getattr()、setattr()函数简介