什么是IOC/DI?
控制反转IoC,是一种设计思想,DI(依赖注入)是实现IoC的一种方法。没有IoC的程序中 , 我们使用面向对象编程 , 对象的创建与对象间的依赖关系完全硬编码在程序中,对象的创建由程序自己控制,控制反转后将对象的创建转移给spring容器。
IoC是Spring框架的核心内容,使用多种方式完美的实现了IoC,可以使用XML配置,也可以使用注解,新版本的Spring也可以零配置实现IoC。
Spring容器在初始化时先读取配置文件,根据配置文件或元数据创建与组织对象存入容器中,程序使用时再从Ioc容器中取出需要的对象。
控制反转是一种通过描述(XML或注解)并通过第三方去生产或获取特定对象的方式。在Spring中实现控制反转的是IoC容器,其实现方法是依赖注入(Dependency Injection,DI)。
DI的三种依赖注入方式和底层实现:
- 设值注入 底层实现set方法赋值,ref 引用其它对象,对象的嵌套(代码:<property>)
2.构造注入 底层实现构造方法注入,根据bean下的参数类型和参数数量,寻找对应的构造方法,如果没有,则报错<constructor-arg>
3.自动装配
限制:不能自动装配所谓的简单类型包括基本类型,字符串和集合类
通常用来自动装配 对象
3.1按照名称来自动装配 :
一、标注autowire=”byName”,表示通过名称来自动装配
二、 扫描当前类下,所有 对象 的 属性值,然后通过这个属性值来spring容器(配置文件)中找有没有对应的bean-id
三、 如果找到,则自动装配该对象;如果找不到,则为空或报错
四、 底层实现是 set方法
3.2 按照类型来自动装配
一、 标注autowire=”byType”,表示通过类型来自动装配
二、 扫描当前类下,所有的 对象 的 类型,然后通过类型来spring容器(配置文件)中找有没有对应的类型
三、 如果找到,则自动装配该对象;否则,则报错
四、 底层实现是 set方法
什么是IOC/DI?相关推荐
- 工厂方法模式与IoC/DI
工厂方法模式与IoC/DI IoC--Inversion of Control 控制反转 DI--Dependency Injection 依赖注入 1:如何理解IoC/DI ...
- 在X++中使用IoC/DI模式应对不断变化的客户需求
IoC/DI(Inverse of Control/Dependency Injection,控制反转/依赖注入)模式是一种企业级架构模式,通过将应用程序控制权反转交移给框架,并以构造器注入.属性设置 ...
- 认识Spring核心容器IoC/DI
对于 Java 编程来说,使用 Spring 能完成的更加快速,更容易并更安全.Spring 专注于速度,便捷与开发效率,也正是如此,让Spring成为了全世界最流行的 Java 框架.从配置到安全, ...
- Spring+IOC(DI)+AOP概念及优缺点
Spring pring是一个轻量级的DI和AOP容器框架. 说它轻量级有一大部分原因是相对与EJB的(虽然本人从没有接触过EJB的应用),重要的是,Spring是非侵入式的,基于spring开发的应 ...
- AutoFac IoC DI 依赖注入
AutoFac IoC DI 依赖注入 记录点点滴滴知识,为了更好的服务后来者! 一.为什么使用AutoFac? 之前介绍了Unity和Ninject两个IOC容器,但是发现园子里用AutoFac的貌 ...
- 手撸Spring系列4:IOC/DI 思想(实战篇)
说在前头: 笔者本人为大三在读学生,书写文章的目的是为了对自己掌握的知识和技术进行一定的记录,同时乐于与大家一起分享,因本人资历尚浅,发布的文章难免存在一些错漏之处,还请阅读此文章的大牛们见谅与斧正. ...
- 手撸Spring系列2:IOC/DI 思想(源码篇-IOC)
说在前头: 笔者本人为大三在读学生,书写文章的目的是为了对自己掌握的知识和技术进行一定的记录,同时乐于与大家一起分享,因本人资历尚浅,发布的文章难免存在一些错漏之处,还请阅读此文章的大牛们见谅与斧正. ...
- Spring的IOC/DI
一.Spring框架模块结构 Spring Framework是由Spring团队研发的模块化.轻量级开源框架.其主要目的是为了简化项目开发. Test 对应spring-test.jar. Spri ...
- Spring框架IoC/DI原理及实现
1.概念 IoC:指将对象的创建权,交给到Spring容器: DI :指Spring创建对象的过程中,将对象依赖的属性通过配置的方式自动的设值给当前的对象 . IoC/DI注解详解 完成IoC/DI, ...
- 6. Laravel5学习笔记:IOC/DI的理解
介绍 IOC 控制反转 Inversion of Control 依赖关系的转移 依赖抽象而非实践 DI 依赖注入 Dependency Injection 不必自己在代码中维护对象的依赖 容器自动根 ...
最新文章
- php curl 内容采集
- 一步将 p12转为pem
- Lock与synchronized 的区别
- 神经网络 online problem class反馈
- Spring的EL表达式
- Linq 下的 Take() 方法内部机制是怎样的?
- C程序范例(2)——学生管理系统”链表“实现
- DSS流媒体服务器搭建
- 面对亚马逊和谷歌的争夺战,小企业该如何生存?
- 苹果电脑的文件怎样拷贝入移动硬盘里
- 如何使用Keras fit和fit_generator(动手教程)
- C# 版 flvmerge:快速合并多个flv文件
- C# OpenCvSharp 连通区域最小衔接矩形+最小标注信息(minx,miny,Width,Height)
- 【Qt学习笔记】包含头文件确报错 does not name a type
- 09组团队项目-Alpha冲刺-3/6
- 动态网页怎样才能被搜索引擎收录
- Wayland协议了解
- php 实现查询百度排名,查询百度关键词排名代码 php
- 一本通 1283:登山
- mtr命令行工具的理解和应用总结