IoC(Inversion of Control)的理念就是:让别人为你服务。原来是需要什么东西自己去拿,现在是需要什么东西让别人送过来。

被注入对象通过以下三种方式来通知IoC Service Provider为其提供相应的被依赖对象:

  1. 构造方法注入
  2. setter方法注入
  3. 接口注入
  • 构造方法注入

  就是被注入对象可以通过在其构造方法中声明依赖对象的参数列表,让IoC容器知道它需要哪些依赖对象。

  • setter方法注入

  被注入对象只要为其依赖对象所对应的属性添加setter方法,就可以通过setter方法将相应的依赖对象设置到被注入对象中。

  • 接口注入

  被注入对象如果想要Ioc容器为其注入依赖对象,就必须实现某个接口,这个接口提供一个方法,用来为其注入依赖对象。Ioc容器最终通过这些接口来了解应该为被注入对象注入什么依赖对象。

  • 三种注入方式比较

  构造方法注入和setter方法注入因为其侵入性较弱,且易于理解和使用,所以是现在使用最多的注入方式;而接口注入不流行了。

转载于:https://www.cnblogs.com/IvySue/p/6473893.html

《Spring》(一)---- IOC基本概念相关推荐

  1. Spring框架----IOC的概念和作用之工厂模式

    创建bean对象的工厂 bean在计算机英语中,有可重用组件的含义 可重用:可反复使用.组件:组成部分,比如service可以被servlet反复使用,dao被service使用.service可以看 ...

  2. Spring框架----IOC的概念和作用之程序的耦合和解耦

    1.编译期的依赖 请看如下程序(程序运行在idea中,导入过mysql驱动) //1.注册驱动 DriverManager.registerDriver(new com.mysql.jdbc.Driv ...

  3. spring中ioc是什么

    摘自:https://www.jb51.net/article/123900.htm IoC是一种让服务消费者不直接依赖于服务提供者的组件设计方式,是一种减少类与类之间依赖的设计原则.下面通过本文给大 ...

  4. java day57【 Spring 概述 、 IoC 的概念和作用、使用 spring 的 IOC 解决程序耦合 】...

    第1章 Spring 概述 1.1 spring 概述[了解] 1.1.1 spring 是什么 1.1.2 Spring 的发展历程 1.1.3 spring 的优势 1.1.4 spring 的体 ...

  5. 一篇复习一下Spring和SpringMVC基本概念

    什么是Spring,为什么你要学习spring? 你第一次接触spring框架是在什么时候?相信很多人和我一样,第一次了解spring都不是做项目的时候用到,而是在网上看到或者是听到过一个叫做spri ...

  6. Java Spring的IoC和AOP的知识点速记

    Spring简介 Spring解决的最核心的问题就是把对象之间的依赖关系转为用配置文件来管理,这个是通过Spring的依赖注入机制实现的. Spring Bean装配 1. IOC的概念以及在Spri ...

  7. Spring的IOC原理[通俗解释一下]

    2019独角兽企业重金招聘Python工程师标准>>> 本文系转载,个人认为,这篇文章对IOC原理讲的比较清楚,通俗易懂,值得一看. 原文地址:http://blog.csdn.ne ...

  8. spring框架ioc(控制反转)第二讲

    配置applicationContext.xml: spring的ioc容器的配置文件:applicationContext.xml(默认名称) 配置schema约束: http://www.spri ...

  9. 使用 spring 的 IOC 解决程序耦合——获取spring的Ioc核心容器,并根据id获取对象、核心容器的两个接口(ApplicationContext、BeanFactory)引发出的问题

    IOC概念和spring中的IOC 明确 ioc 的作用: 削减计算机程序的耦合(解除我们代码中的依赖关系). 使用 spring 的 IOC 解决程序耦合 获取spring的Ioc核心容器,并根据i ...

  10. Spring-学习笔记03【Spring的IOC和DI】

    Java后端 学习路线 笔记汇总表[黑马程序员] Spring-学习笔记01[Spring框架简介][day01] Spring-学习笔记02[程序间耦合] Spring-学习笔记03[Spring的 ...

最新文章

  1. 第三次毕业设计任务书
  2. Lesson 4.6 逻辑回归的手动实现
  3. Restful API 设计
  4. 【移植驱动到Linux3.4.2内核之二】LCD,触摸屏,按键,USB等驱动程序的移植心得总结
  5. php时间调用最简单的,PHP调用时间通过引用不可避免?
  6. Spring第七弹—依赖注入之注解方式注入及编码解析@Resource原理
  7. 从一条select语句看Oracle数据库查询工作原理
  8. 从0开始写JavaWeb框架系列(1)从0开始写SamrtFrameWork:读取配置文件
  9. python爬虫从入门到放弃-python爬虫从入门到放弃(二)之爬虫的原理
  10. 计算机组成原理—算数逻辑单元
  11. vs2008 jquery 智能提示
  12. RHCS双机集群调测
  13. 测绘资质分级标准-工程测量、界线与不动产测绘
  14. 如何获得凤凰网或腾讯视频链接并下载到本地
  15. 详解OSI七层模型和TCP/IP模型
  16. Mybatis报错Could not find resource mybatis.xml
  17. Python调用谷歌翻译接口
  18. 数学基础(2)~ 数理统计基础知识
  19. 通达信波段王指标公式主图_通达信波段MACD主图指标公式
  20. JS HTML CSS 前端页面生成电脑桌面壁纸?(动态可交互)

热门文章

  1. [读书笔记] 深入探索Android热修复技术原理 (手淘技术团队)
  2. android 6.0 logcat机制(三)logd处理请求log
  3. 给计算机系统的资产分配的记号被称为什么,哈工大2015计算机复试试题(25页)-原创力文档...
  4. java httpclient 302_httpclient如何处理302重定向
  5. linux 固定usb设备,linux下多个usb设备固定名称方法
  6. 计算机组装的维修学测,《计算机组装与维修》课程学业水平测试卷(样卷答案).doc...
  7. python websocket库 安装_Python WebSocket
  8. 个人常用word技巧----平时编辑word能快不少~
  9. linux查看某端口进程占用,Linux下查看某端口占用进程
  10. python大数字计算时没有响应_linux-为什么在尝试计算非常大的数字时Python会“抢先”挂起?...