Spring-IOC&DI

IOC和DI的关系

IoC is also known as dependency injection (DI).–来自官网的说明
翻译:IOC又名DI.
链接:https://docs.spring.io/spring-framework/docs/5.3.14/reference/html/core.html#beans-introduction

IOC名字的由来

IOC:处理对象创建和依赖关系的过程.

为什么不叫小明非要叫IOC呢?

案例:
一个学生(对象)可以存储三门课程语文(对象)、数学(对象)、英语(对象).
没有IOC的时候

代码如下:
//语文
Chin chin = new Chin();
//数学
Math math = new Math();
//英语
Eng eng = new Eng();
//学生
Student stu = new Student(chin,math,Eng);
//(使用)打印
stu.printChin();
stu.printMath();
stu.printEng();
//以上创建对象和对象的依赖全都是程序员的工作量

有IOC的时候

定义对象依赖:
<bean id = "chin" class = "xxxx.xxxx.Chin"/>
<bean id = "math" class = "xxxx.xxxx.Math"/>
<bean id = "eng" class = "xxxx.xxxx.Eng"/><bean id = "stu" class = "xxxx.xxxx.Student"><constructor name = "chin" ref="chin"/><constructor name = "math" ref="math"/><constructor name = "eng" ref="eng"/>
</bean>
代码如下:
Student stu = BeanFactory.getBean("stu");
//(使用)打印
stu.printChin();
stu.printMath();
stu.printEng();
//以上创建对象和依赖的工作量都反转给了程序(IOC).(减少了程序员的工作量春天(Spring)来啦)

总结:工作量都反转给了程序(IOC)这个过程不就是控制反转吗?

【Spring系列-Spring-IOCDI】相关推荐

  1. Spring系列——Spring MVC配置文件

    Spring系列--Spring MVC配置文件 一.前端控制器DispatcherServlet 二.RequestMapping注解 1.使用方法 1.1. 标注在方法上 1.2. 标注在类上 2 ...

  2. Spring 系列: Spring 框架简介

    Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架. 在这篇由三部 ...

  3. Spring 系列: Spring 框架

    第一部分:Spring 框架简介 Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序 ...

  4. Spring系列第20篇:@Conditional通过条件来控制bean的注册

    面试阿里p7被问到的问题(当时我只知道第一个): @Conditional是做什么的? @Conditional多个条件是什么逻辑关系? 条件判断在什么时候执行? ConfigurationCondi ...

  5. Spring系列第10篇:primary可以解决什么问题?

    存在的问题以及解决方案 直接上案例,通过案例来看技术是如何使用的: package com.javacode2018.lesson001.demo8;public class NormalBean { ...

  6. Spring系列第9篇:depend-on到底是干什么的?

    本文主要讨论一下bean的创建和销毁的顺序,如何来干预bean的创建和销毁的顺序. 无依赖bean创建和销毁的顺序 我们先来看一下没有任何依赖的bean的创建和销毁的顺序. 下面的xml中定义了3个b ...

  7. 深入理解Spring系列之六:bean初始化

    <深入理解Spring系列之四:BeanDefinition装载前奏曲>中提到,对于非延迟单例bean的初始化在finishBeanFactoryInitialization(beanFa ...

  8. @autowired注解_品Spring:对@Autowired和@Value注解的处理方法(文末附spring系列资源合集)...

    作者:编程新说李新杰 出自:微信公众号"编程新说" 原文:品Spring:对@Autowired和@Value注解的处理方法 在Spring中能够完成依赖注入的注解有JavaSE提 ...

  9. Spring 系列,第 2 部分: 当 Hibernate 遇上 Spring

    为什么80%的码农都做不了架构师?>>>    在这个系列的 前一期中,我介绍了 Spring 框架的 7 个模块,包括 Spring AOP 和控制反转(IOC)容器.然后我用一个 ...

  10. 深入理解Spring系列之三:BeanFactory解析

    转载 https://mp.weixin.qq.com/s?__biz=MzI0NjUxNTY5Nw==&mid=2247483824&idx=1&sn=9b7c2603093 ...

最新文章

  1. luogu5024 [NOIp2018]保卫王国 (动态dp)
  2. vscode更改插件路径_用好这7个 VS Code 插件,效率蹭蹭涨!
  3. 进程和线程的定义和区别
  4. mysql密码正确但无法连接【彻底解决方案】
  5. bzoj 4566 找相同字符 —— 广义后缀自动机
  6. mysql rename语法错误_为什么现在MySQL无法重命名数据库?
  7. Buffer、ArrayBuffer、DataView互转(node.js)
  8. BFS+模拟 ZOJ 3865 Superbot
  9. 南京大学计算机考研的重点,南京大学计算机考研
  10. 3DMax设置长度单位
  11. matlab画奇异吸引子,第四节 混沌理论和奇异吸引子
  12. java画乌龟_简单的实现java多线程——龟兔赛跑
  13. c#语言小括号里面的逗号是什么意思
  14. SQL server卸载软件(可修复注册表)
  15. 阿里云大数据助理工程师认证考试考什么内容?
  16. 音频文件的结构与规范——RIFF和WAVE音频文件格式
  17. Win32消息集合----方便查阅
  18. Python计算机视觉编程第十章——OpenCV基础知识
  19. Struts常见错误及原因分析
  20. onload和ready的不同

热门文章

  1. excel怎么把竖排变成横排_如何优雅的使用Excel作出高大上的图片
  2. el-table样式总结—持续更新
  3. 什么是网格化空气质量监测系统?
  4. mybatis报空指针异常的几种原因
  5. 技术趋势与热点:开源高效的物联网大数据平台-TDengine PPT分享
  6. 爬虫练手项目:获取豆瓣评分最高的电影并下载
  7. MD5加密介绍、工具类的使用
  8. Canvas画POS机打印小票图片,打印机直接打印图片
  9. Linux vim插件安装
  10. 搭建公司wiki系统Confluence