Spring的控制反转(IOC)和依赖注入(DI)具体解释

首先介绍下(IOC)控制反转:

所谓控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。这样控制器就有应用转移到了外部容器。控制权的转移就是反转
        演示样例代码例如以下:

public class PersonServiceBean{private PersonDao personDao = new PersonDaoImpl();public void save(Person person){personDao.save(person);}
}

PersonDaoImpl是在应用内部创建和维护的。

对象的创建有外部负责。这就是一个IOC。

(DI)依赖注入

依赖注入就是:程序执行期间。有外部容器动态的将依赖对象注入到组件中。
当我们把依赖对象交给外部容器负责创建,那么PersonServiceBean类能够改成例如以下:

public class PersonServiceBean{private PersonDao personDao;//通过构造器參数注入//也能够通过setter方法进行注入public PersonServiceBean(PersonDao personDao){this.personDao = personDao;}public void save(Person person){personDao.save(person);}
}

DI是在IOC的基础上产生的。

Spring的控制反转(IOC)和依赖注入(DI)具体解释相关推荐

  1. java-12:spring MVC - 控制反转IOC,依赖注入DI

    学习spring框架之前,先理解几个概念: 1.第一部分:依赖倒置原则 2.第二部分:控制反转,控制反转容器(实例) 3.第三部分:控制反转,控制反转容器(全面理解,面试题) 综合性理解:控制反转(I ...

  2. 控制反转IOC与依赖注入DI

    为什么80%的码农都做不了架构师?>>>    1. IoC理论的背景 我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最 ...

  3. 控制反转(IoC)与依赖注入(DI)详解

    文章目录 什么是控制反转(IoC) 控制反转(IoC)有什么作用 控制反转(IoC)是怎么分类的 依赖注入 接口注入 Setter方法注入 构造器注入 依赖查找 上下文依赖查找(Contextuali ...

  4. 控制反转IOC、依赖注入DI的详细说明与举例

    文章目录 引入 IOC介绍 IOC的实现 通过构造函数注入依赖 通过 setter 设值方法注入依赖 依赖注入容器 IOC优缺点 优点 缺点 阅读时忽略语言差异,参考了很多其他博主内容,参考博文在最后 ...

  5. 依赖倒置(DIP),控制反转(IoC)与依赖注入(DI)

    DIP,IoC与DI概念解析 依赖倒置 DIP(Dependency Inversion Principle) DIP的两大原则: 1.高层模块不应该依赖于低层模块,二者都应该依赖于抽象. 2.抽象不 ...

  6. 控制反转(Ioc)和依赖注入(DI)

    控制反转IOC, 全称 "Inversion of Control".依赖注入DI, 全称 "Dependency Injection". 面向的问题:软件开发 ...

  7. Spring_01 spring容器、控制反转(IOC)、依赖注入(DI)

    目录 1 什么是spring框架 2 spring框架的特点 3 spring容器 3.1 什么是spring容器 3.2 spring容器创建对象的编程步骤 3.4 spring容器创建对象的方式 ...

  8. 控制反转 IOC 与依赖注入 DI

    引言 简单总结和巩固一下spring的核心原理--IOC和DI的概念,为什么IOC要叫控制反转?IOC和DI的关系是怎样的? 一.IOC 控制反转 初学者可能很好奇,为什么spring framewo ...

  9. [教程]控制反转(IoC)与依赖注入(DI)

    来源: http://zhangjunhd.blog.51cto.com/113473/126530/ 挺简单的,说的也很清楚 ※IoC/DI 依赖Java的反射机制 1.控制反转(Inversion ...

  10. (转载)控制反转(IoC)与依赖注入(DI)

    http://zhangjunhd.blog.51cto.com/113473/126530/ 转载于:https://www.cnblogs.com/eecs2016/articles/741709 ...

最新文章

  1. 独家 | 指南:不平衡分类的成本敏感决策树(附代码链接)
  2. 前后端token机制 识别用户登录信息
  3. 全球最美的15座数据中心
  4. OpenCV实践之路——人脸检测(C++/Python) 【转】
  5. oracle数据库sysaux表空间,如何管理oracle数据库的SYSAUX表空间
  6. java环境变量一闪而过_Java环境变量配置和Tomcat启动时cmd界面一闪而过问题
  7. (学习)linux驱动学习知识积累(一)
  8. 【前沿】PurdueUCLA提出梯度Boosting网络,效果远好于XGBoost模型!
  9. 整理一些ChartControl控件属性
  10. 硬盘异响(嗑啦嗑啦)的可能原因
  11. php中ci钩子,CodeIgniter钩子用法
  12. 计算机数学基础知识点归纳,计算机数学基础--详细介绍
  13. 深入理解java虚拟机第一第二部分(周志明第三版)
  14. 5:Echarts数据可视化-多条曲线、多个子图、TreeMap类似盒图、树形图、热力图、词云...
  15. (华为社招岗位,部门---公共开发部,数字能源,计算产品线,Carbu, 上海海思,GTS,BPIT,海思,2012):西安!目前HC最多的地域!!
  16. Java数据结构与算法入门
  17. Navicat使用存储过程插入大量数据
  18. 算法刷题7(C++)BFS算法
  19. Markdown 编辑器
  20. 香港科大(广州)8位创校教授获评2020南沙高端领军人才

热门文章

  1. JVM(2)之 JAVA堆
  2. 鸟哥的linux私房菜-文件压缩于打包-2
  3. 马云携阿里17位创始人及合伙人捐赠浙大一院5.6亿,杭州渐成中国硅谷
  4. Python语言精要---上
  5. 根据年月日,判断20XX年XX月XX日是 星期几
  6. linux 自学系列:wc命令
  7. linux重启后出现control+D错误的解决
  8. c# 18位身份证源代码
  9. Python 进阶_OOP 面向对象编程_类属性和方法
  10. python_控制台输出带颜色的文字方法