Spring的控制反转(IOC)和依赖注入(DI)具体解释
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)具体解释相关推荐
- java-12:spring MVC - 控制反转IOC,依赖注入DI
学习spring框架之前,先理解几个概念: 1.第一部分:依赖倒置原则 2.第二部分:控制反转,控制反转容器(实例) 3.第三部分:控制反转,控制反转容器(全面理解,面试题) 综合性理解:控制反转(I ...
- 控制反转IOC与依赖注入DI
为什么80%的码农都做不了架构师?>>> 1. IoC理论的背景 我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最 ...
- 控制反转(IoC)与依赖注入(DI)详解
文章目录 什么是控制反转(IoC) 控制反转(IoC)有什么作用 控制反转(IoC)是怎么分类的 依赖注入 接口注入 Setter方法注入 构造器注入 依赖查找 上下文依赖查找(Contextuali ...
- 控制反转IOC、依赖注入DI的详细说明与举例
文章目录 引入 IOC介绍 IOC的实现 通过构造函数注入依赖 通过 setter 设值方法注入依赖 依赖注入容器 IOC优缺点 优点 缺点 阅读时忽略语言差异,参考了很多其他博主内容,参考博文在最后 ...
- 依赖倒置(DIP),控制反转(IoC)与依赖注入(DI)
DIP,IoC与DI概念解析 依赖倒置 DIP(Dependency Inversion Principle) DIP的两大原则: 1.高层模块不应该依赖于低层模块,二者都应该依赖于抽象. 2.抽象不 ...
- 控制反转(Ioc)和依赖注入(DI)
控制反转IOC, 全称 "Inversion of Control".依赖注入DI, 全称 "Dependency Injection". 面向的问题:软件开发 ...
- Spring_01 spring容器、控制反转(IOC)、依赖注入(DI)
目录 1 什么是spring框架 2 spring框架的特点 3 spring容器 3.1 什么是spring容器 3.2 spring容器创建对象的编程步骤 3.4 spring容器创建对象的方式 ...
- 控制反转 IOC 与依赖注入 DI
引言 简单总结和巩固一下spring的核心原理--IOC和DI的概念,为什么IOC要叫控制反转?IOC和DI的关系是怎样的? 一.IOC 控制反转 初学者可能很好奇,为什么spring framewo ...
- [教程]控制反转(IoC)与依赖注入(DI)
来源: http://zhangjunhd.blog.51cto.com/113473/126530/ 挺简单的,说的也很清楚 ※IoC/DI 依赖Java的反射机制 1.控制反转(Inversion ...
- (转载)控制反转(IoC)与依赖注入(DI)
http://zhangjunhd.blog.51cto.com/113473/126530/ 转载于:https://www.cnblogs.com/eecs2016/articles/741709 ...
最新文章
- 独家 | 指南:不平衡分类的成本敏感决策树(附代码链接)
- 前后端token机制 识别用户登录信息
- 全球最美的15座数据中心
- OpenCV实践之路——人脸检测(C++/Python) 【转】
- oracle数据库sysaux表空间,如何管理oracle数据库的SYSAUX表空间
- java环境变量一闪而过_Java环境变量配置和Tomcat启动时cmd界面一闪而过问题
- (学习)linux驱动学习知识积累(一)
- 【前沿】PurdueUCLA提出梯度Boosting网络,效果远好于XGBoost模型!
- 整理一些ChartControl控件属性
- 硬盘异响(嗑啦嗑啦)的可能原因
- php中ci钩子,CodeIgniter钩子用法
- 计算机数学基础知识点归纳,计算机数学基础--详细介绍
- 深入理解java虚拟机第一第二部分(周志明第三版)
- 5:Echarts数据可视化-多条曲线、多个子图、TreeMap类似盒图、树形图、热力图、词云...
- (华为社招岗位,部门---公共开发部,数字能源,计算产品线,Carbu, 上海海思,GTS,BPIT,海思,2012):西安!目前HC最多的地域!!
- Java数据结构与算法入门
- Navicat使用存储过程插入大量数据
- 算法刷题7(C++)BFS算法
- Markdown 编辑器
- 香港科大(广州)8位创校教授获评2020南沙高端领军人才