spring IOC and DI
1、IOC和DI的区别:
IOC:对象的管理权由spring容器掌握(管理权限包括:对象的创建时间点、创建方式以及对象属性的管理);
DI:spring操作对象属性的时使用的方式就是DI技术

2、DI方式:spring操作对象属性的时间点一般都是在对象创建的时候,操作的方式是可配置的,主要有4种方式:no(default)、byName、byType、constructor。
no方式:这是spring的默认方式,这种方式spring不会对对象的属性做任何的操作,除非配置了<property>属性,否则spring不会自动的在当前context去找需要的值。
byName方式:spring会在当前的context找到和对象属性名称相同的值进行注入,如果找到的值的类型和属性的值类型不一致就会报:"Cannot convert value of type"错误。
byType方式:spring会在当前的context找到和对象属性类型相同的值进行注入,如果找到值不止一个就会报"No unique bean of type"错误。
constructor方式:这种方式比较特殊,这是一个显示的依赖关系,对象必须有有参构造方法,spring会根据参数的名称去context找对应的值进行注入,改方式不能被子类继承。

3、IOC用法:
3.1、创建子类对象,给其指定父类对象,如果不指定那么父类会重新实例化,不会再当前容器中查找。
<bean name="student" class="com.xxw.pojo.Student" parent="persion">
<property name="name" value="this a student"/>
</bean>
<bean name="persion" class="com.xxw.pojo.Persion" autowire="byName" >
<property name="persionName" value="this is two persion"/>
</bean>
其他两种:可以通过静态工厂方法或者实例工厂的方法

4、spring元数据配置中的p标签和c标签
使用p标签需要加入xml:xmlns:p="http://www.springframework.org/schema/p"
<bean name="animal" class="com.xxw.pojo.Cat" p:name="this is cat" />
等价于:
<bean name="animal" class="com.xxw.pojo.Cat">
<property name="name" value="this is cat"/>
</bean>
使用c标签需要加入xml: xmlns:c="http://www.springframework.org/schema/c"
这个标签的使用类似于:<constructor-arg></constructor-arg>标签

转载于:https://www.cnblogs.com/xxw-it/p/3647777.html

spring IOC和DI相关推荐

  1. 手写实现Spring(IOC、DI),SpringMVC基础功能

    手写实现Spring(IOC.DI),SpringMVC功能 spring和springMVC的用法相信大家都不陌生,我简单讲下我实现的思路 spring阶段 事项 配置 配置web.xml: ini ...

  2. 浅谈Spring IOC和DI及Spring工厂类

    浅谈Spring IOC和DI及Spring的工厂类 文章目录 浅谈Spring IOC和DI及Spring的工厂类 一. IOC 1.什么是IOC 2.为什么使用IOC 传统开发模式的弊端 3. 使 ...

  3. Spring IOC与DI、反射的理解 含小案例说明

    阅览了很多篇博文,对于Spring IOC和DI看到很多人介绍的感觉都很含糊,读完之后还是觉得混淆的不行,也有的人认为DI是IOC的另一种说法-emm,可能个人理解不同吧,我的观点并不然.但这种东西, ...

  4. spring IOC和DI 理解

    IOC(控制反转)和DI(依赖注入)是spring中的重要组成部分,下面是个人的一些理解,不代表官方. 1.IOC是什么? IOC:全名是Inversion of Controller 中文解释是控制 ...

  5. Spring IOC和DI

    Spring  IOC和DI 框架:  将一些公用的模块进行集成,通过框架的形式进行管理(事务控制,权限控制(Shiro),日志收集log) Spring框架  SSH: Struts2(配置重型)+ ...

  6. Spring:IoC和DI完成打印机打印详细说明过程及代码

    Spring:IoC和DI完成打印机 课后作业 使用Spring的IoC.DI 装配一台打印机 纸张接口 实现 有: A4 A5 墨盒接口 实现 有:黑白 彩色 注解方式和非注解方式都要 说明:1.首 ...

  7. 关于RuoYi中Spring IOC、DI以及MVC不同注解的使用

    1.什么是Spring IOC.DI? IOC(inverse of control)即"控制反转",DI(Dependence Injection)即"依赖注入&quo ...

  8. 彻底理解Spring IOC和DI

    目录 前言 1. 分享Iteye的开涛对Ioc的精彩讲解 1.1 IoC是什么 1.2 IoC能做什么 1.3 IoC和DI 2. 分享Bromon的blog上对IoC与DI浅显易懂的讲解 2.1 I ...

  9. Spring IoC、DI、Bean和自动装配的理解

    文章目录 IoC创建对象 DI依赖注入 Bean的理解 自动装配 IoC创建对象 我们都知道IoC是控制反转的,也就是我们只需要把类注册到Spring容器中,他可以帮助我们创建对象,该创建的思想也就是 ...

最新文章

  1. Mustache.js和Handlebars.js有什么区别?
  2. 死锁产生的4个必要条件,如何检测,解除死锁
  3. 作业帮电脑版在线使用_在线K12赛道六虎争霸:猿辅导、作业帮又宣布新一轮融资...
  4. IE浏览器打不开解决的方法
  5. sql查询字段的值不为空
  6. DokuWiki的发现之旅
  7. 同态加密实现数据隐私计算,能让你的小秘密更加秘密
  8. 牛!发出中国第一封电子邮件,注册登记域名 CN,中国互联网之父传奇
  9. linux流量管家安装失败,解决Linux流量统计软件vnstat安装后无法统计流量的问题...
  10. MVC模式在Java Web应用程序中的实现
  11. MySQL可视化管理工具之SQLyog的简介以及使用方法
  12. 蓝桥杯官网练习系统基础练习(八)
  13. 好看实用的六个html登录页面
  14. 什么是NDK开发(一)
  15. 图数据库——Nebula Graph安装部署(含示例)
  16. 华为手机如何设置主页面_华为手机怎么进行桌面管理?正确管理华为手机桌面图标及屏幕的方法...
  17. 任何人都有值得学习的地方,横瓜向[水牛党](4618415)请教问题
  18. EXCEL 公式中 sheet名字 用 单元格值 代替
  19. FuJacKing-我的豆瓣解封了
  20. Pytorch安装教程 及 解决 torch.cuda.is_available() 返回 False 的问题

热门文章

  1. error LNK2019: 无法解析的外部符号 __imp__inet_ntoa@4
  2. 自动化运维之PSSH
  3. spring aop代码的增强
  4. Java之品优购课程讲义_day01(8)
  5. 团购步入巨头时代,半自助团购或将极大提升网民网购质量
  6. Apache Ant自动化脚本
  7. Nagios 监控系列学习 —— 简介和安装
  8. 用 Celery 实现邮件推送系统
  9. 代码混淆工具Dotfuscator 在VS2008中的使用步骤
  10. 做业务与技术之间的桥梁