spring-第一篇之spring核心机制依赖注入(DI)/控制翻转(IoC)
1、spring的核心机制:依赖注入(DI)/控制翻转(IoC)
什么是依赖:A对象需要调用B对象,所以A依赖于B。
什么是注入:A对象注入一个属性B对象。
什么是依赖注入(DI):A对象依赖于B对象,spring容器负责将B对象添加到A对象中,即将A对象的依赖对象B添加到A对象中。
什么是控制翻转(IoC):A对象依赖于B对象,它将通过new B对象的方式主动获取得B对象实例;但spring则将B对象直接送到A面前供其使用,A被动接受B对象。
依赖注入(DI)与控制翻转(IoC)的关系:只是从不同的角度描述A对象需要B对象的两种表达方式,它们的语义意思是完全一样的。
依赖注入的方式:
1》设值注入:IoC容器使用成员变量的setter方法来注入被依赖的对象。默认会启动目标bean无参构造器。
property属性标签:如果传入的参数是基本类型及其包装类、String等类型,则使用value属性字段指定传入参数;如果是容器中其他bean作为传入参数,则使用ref属性指定传入参数。
创建目标bean过程:容器先创建目标bean,然后调用成员变量的setter方法完成依赖注入。
2》构造注入:IoC容器使用带参构造器来注入被依赖的对象。
每个<constructor-arg .../>子元素代表一个构造器参数,<bean .../>元素包含N个<constructor-arg .../>子元素,就会驱动spring调用带N个参数的构造器来创建对象。可以为<constructor-arg .../>子元素指定index属性,表示该参数代表构造器第几个参数,index=0表示构造器的第一个参数。可以为<constructor-arg .../>子元素指定type属性,表示该参数的参数类型。
创建目标bean过程:目标bean创建完成的时候,被依赖对象已经被创建,即已经完成依赖关系的注入。
spring-第一篇之spring核心机制依赖注入(DI)/控制翻转(IoC)的更多相关文章
- ADO.NET .net core2.0添加json文件并转化成类注入控制器使用 简单了解 iTextSharp实现HTML to PDF ASP.NET MVC 中 Autofac依赖注入DI 控制反转IOC 了解一下 C# AutoMapper 了解一下
ADO.NET 一.ADO.NET概要 ADO.NET是.NET框架中的重要组件,主要用于完成C#应用程序访问数据库 二.ADO.NET的组成 ①System.Data → DataTable, ...
- 依赖注入 DI 控制反转 IOC MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- 浅析“依赖注入(DI)/控制反转(IOC)”的实现思路
开始学习Spring的时候,对依赖注入(DI)——也叫控制反转(IOC)—— 的理解不是很深刻.随着学习的深入,也逐渐有了自己的认识,在此记录,也希望能帮助其他入门同学更深入地理解Spring.本文不 ...
- ASP.NET MVC 中 Autofac依赖注入DI 控制反转IOC 了解一下
先简单了解一这个几个 名词的意思. 控制反转(IOC) 依赖注入(DI) 并不是某种技术. 而是一种思想.一种面向对象编程法则 什么是控制反转(IOC)? 什么是依赖注入(DI) 可以点击下面链接 ...
- 依赖注入 DI 控制反转 IOC 概念 案例 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- ASP.NET中IOC容器Autofac(依赖注入DI 控制反转IOC)
IOC的一个重点是在程序运行中,动态的向某个对象提供它所需要的其他对象.这一点是通过DI来实现的.Autofac则是比较流行的一款IOC容器. IoC和DI有什么关系呢?其实它们是同一个概念的不同角度 ...
- Spring的核心机制依赖注入
原文地址:http://developer.51cto.com/art/200610/33311.htm 本文主要讲解依赖注入(设值注入.构造注入),作用是可以使Spring将各层的对象以松耦合的方式 ...
- Spring的核心机制——依赖注入(Dependency Inject)
Spring不仅提供对象,还提供对象的属性值,而不是由使用该对象的程序所提供的. Java应用是由一些相互协作的对象所组成的,在Spring中这种相互协作的关系就叫依赖关系. 如果A组件调用了B组件的 ...
- Spring的核心机制——依赖注入(Dependency Inject)
Spring不仅提供对象,还提供对象的属性值,而不是由使用该对象的程序所提供的. Java应用是由一些相互协作的对象所组成的,在Spring中这种相互协作的关系就叫依赖关系. 如果A组件调用了B组件的 ...
随机推荐
- 获取请求头中User-Agent工具类
public class AgentUserKit { private static String pattern = "^Mozilla/\\d\\.\\d\\s+\\(+.+?\\)&q ...
- CSS3 (border-radius)深度探析
border-radius 为元素添加圆角边框 <div class = "demo"></div> .demo{ width:100px; height: ...
- HBase的访问方式
这里只介绍三种最常用的方式 1.HBase shell HBase的命令行工具是最简单的接口,主要用于HBase管理 首先启动HBase 帮助 hbase(main):001:0> help 查 ...
- 使用JSONP,jQuery的ajax跨域获取json数据
网上找了很多资料,写的不错,推荐下: 1.深入浅出JSONP--解决ajax跨域问题 (http://www.cnblogs.com/chopper/archive/2012/03/24/240394 ...
- 转载——CentOS---网络配置详解
看到一篇关于Centos网络配置很详细的文章,特此复制来.原文网址:http://blog.chinaunix.net/uid-26495963-id-3230810.html 一.配置文件详解在RH ...
- docker技术基础
1 Linux Namespace Linux Namespaces机制提供一种资源隔离方案.PID,IPC,Network等系统资源不再是全局性的,而是属于特定的Namespace.每个Namesp ...
- OGG replicat复制进程的拆分
参考资料: 1.https://blog.csdn.net/datingting1/article/details/79583690
- pandas数据读取(DataFrame & Series)
1.pandas数据的读取 pandas需要先读取表格类型的数据,然后进行分析 数据说明 说明 pandas读取方法 csv.tsv.txt 用逗号分割.tab分割的纯文本文件 pd.read_csv ...
- MacOS系統Flutter打包apk
一.打包前需要做一些基本设置的确认 1.应用名 2.权限设置 3.applicationId:应用唯一标识符 4.versionCode:版本号 5.versionName:版本名称 6.APP应用图 ...
- vant使用中。。。
微信小程序 没有找到 node_modules 目录 https://blog.csdn.net/u014726163/article/details/82898428 使用有赞的npm包 初始化 n ...