控制反转IoC,是一种设计思想,DI(依赖注入)是实现IoC的一种方法。没有IoC的程序中 , 我们使用面向对象编程 , 对象的创建与对象间的依赖关系完全硬编码在程序中,对象的创建由程序自己控制,控制反转后将对象的创建转移给spring容器。

IoC是Spring框架的核心内容,使用多种方式完美的实现了IoC,可以使用XML配置,也可以使用注解,新版本的Spring也可以零配置实现IoC。

Spring容器在初始化时先读取配置文件,根据配置文件或元数据创建与组织对象存入容器中,程序使用时再从Ioc容器中取出需要的对象。

控制反转是一种通过描述(XML或注解)并通过第三方去生产或获取特定对象的方式。在Spring中实现控制反转的是IoC容器,其实现方法是依赖注入(Dependency Injection,DI)。

DI的三种依赖注入方式和底层实现:

  1. 设值注入 底层实现set方法赋值,ref 引用其它对象,对象的嵌套(代码:<property>)

2.构造注入 底层实现构造方法注入,根据bean下的参数类型和参数数量,寻找对应的构造方法,如果没有,则报错<constructor-arg>

3.自动装配

限制:不能自动装配所谓的简单类型包括基本类型,字符串和集合类

通常用来自动装配 对象

3.1按照名称来自动装配 :

一、标注autowire=”byName”,表示通过名称来自动装配

二、 扫描当前类下,所有 对象 的 属性值,然后通过这个属性值来spring容器(配置文件)中找有没有对应的bean-id

三、 如果找到,则自动装配该对象;如果找不到,则为空或报错

四、 底层实现是 set方法

3.2 按照类型来自动装配

一、 标注autowire=”byType”,表示通过类型来自动装配

二、 扫描当前类下,所有的 对象 的 类型,然后通过类型来spring容器(配置文件)中找有没有对应的类型

三、 如果找到,则自动装配该对象;否则,则报错

四、 底层实现是 set方法

什么是IOC/DI?相关推荐

  1. 工厂方法模式与IoC/DI

    工厂方法模式与IoC/DI IoC--Inversion of Control  控制反转  DI--Dependency Injection   依赖注入 1:如何理解IoC/DI         ...

  2. 在X++中使用IoC/DI模式应对不断变化的客户需求

    IoC/DI(Inverse of Control/Dependency Injection,控制反转/依赖注入)模式是一种企业级架构模式,通过将应用程序控制权反转交移给框架,并以构造器注入.属性设置 ...

  3. 认识Spring核心容器IoC/DI

    对于 Java 编程来说,使用 Spring 能完成的更加快速,更容易并更安全.Spring 专注于速度,便捷与开发效率,也正是如此,让Spring成为了全世界最流行的 Java 框架.从配置到安全, ...

  4. Spring+IOC(DI)+AOP概念及优缺点

    Spring pring是一个轻量级的DI和AOP容器框架. 说它轻量级有一大部分原因是相对与EJB的(虽然本人从没有接触过EJB的应用),重要的是,Spring是非侵入式的,基于spring开发的应 ...

  5. AutoFac IoC DI 依赖注入

    AutoFac IoC DI 依赖注入 记录点点滴滴知识,为了更好的服务后来者! 一.为什么使用AutoFac? 之前介绍了Unity和Ninject两个IOC容器,但是发现园子里用AutoFac的貌 ...

  6. 手撸Spring系列4:IOC/DI 思想(实战篇)

    说在前头: 笔者本人为大三在读学生,书写文章的目的是为了对自己掌握的知识和技术进行一定的记录,同时乐于与大家一起分享,因本人资历尚浅,发布的文章难免存在一些错漏之处,还请阅读此文章的大牛们见谅与斧正. ...

  7. 手撸Spring系列2:IOC/DI 思想(源码篇-IOC)

    说在前头: 笔者本人为大三在读学生,书写文章的目的是为了对自己掌握的知识和技术进行一定的记录,同时乐于与大家一起分享,因本人资历尚浅,发布的文章难免存在一些错漏之处,还请阅读此文章的大牛们见谅与斧正. ...

  8. Spring的IOC/DI

    一.Spring框架模块结构 Spring Framework是由Spring团队研发的模块化.轻量级开源框架.其主要目的是为了简化项目开发. Test 对应spring-test.jar. Spri ...

  9. Spring框架IoC/DI原理及实现

    1.概念 IoC:指将对象的创建权,交给到Spring容器: DI :指Spring创建对象的过程中,将对象依赖的属性通过配置的方式自动的设值给当前的对象 . IoC/DI注解详解 完成IoC/DI, ...

  10. 6. Laravel5学习笔记:IOC/DI的理解

    介绍 IOC 控制反转 Inversion of Control 依赖关系的转移 依赖抽象而非实践 DI 依赖注入 Dependency Injection 不必自己在代码中维护对象的依赖 容器自动根 ...

最新文章

  1. php curl 内容采集
  2. 一步将 p12转为pem
  3. Lock与synchronized 的区别
  4. 神经网络 online problem class反馈
  5. Spring的EL表达式
  6. Linq 下的 Take() 方法内部机制是怎样的?
  7. C程序范例(2)——学生管理系统”链表“实现
  8. DSS流媒体服务器搭建
  9. 面对亚马逊和谷歌的争夺战,小企业该如何生存?
  10. 苹果电脑的文件怎样拷贝入移动硬盘里
  11. 如何使用Keras fit和fit_generator(动手教程)
  12. C# 版 flvmerge:快速合并多个flv文件
  13. C# OpenCvSharp 连通区域最小衔接矩形+最小标注信息(minx,miny,Width,Height)
  14. 【Qt学习笔记】包含头文件确报错 does not name a type
  15. 09组团队项目-Alpha冲刺-3/6
  16. 动态网页怎样才能被搜索引擎收录
  17. Wayland协议了解
  18. php 实现查询百度排名,查询百度关键词排名代码 php
  19. 一本通 1283:登山
  20. mtr命令行工具的理解和应用总结

热门文章

  1. Linux命令_ps 进程管理
  2. Delphi ord 函数
  3. 华为OD机试题 - 找出重复代码(JavaScript)| 包含代码编写思路
  4. 小程序轮播图组件跳转到自定义页面
  5. 说说 HWND_TOP 和 HWND_TOPMOST 的区别
  6. 解决金山词霸和有道词典不能对pdf文档屏幕取词的方法
  7. MVT MVC模型框架
  8. Python-Tkinter和PyInstaller简介及定时关机程序的简易实现
  9. postgresq | pg命令
  10. 网上预约 php,php65高校体育场地网上预约使用系统