Spring基础03——Spring IOC和DI概述
2024-09-05 19:56:22
1.什么是IOC与DI
IOC(Inversion of Control):其思想是反转资源获取方向,传统的资源查找方式要求组件想容器发起请求查找资源,作为回应,容器适时的返回资源,而应用了IOC之后,则是容器主动地将资源推送给它所管理的组件,组件所要做的仅是选择一种合适的方式来接受资源,这种行为也被称为查找的被动形式DI(DependencyInjection)-IOC的另一种表述方式:即组件以一些预先定义好的方式(例如setter方法)接受来自如容器的资源注入,相对于IOC而言,这种表述更直接。
2.IOC的发展过程
需求:生成HTML或PDF格式的不同类型的报表
IOC前生---分离接口与实现:PDF报表类和HTML报表类分别去实现ReportGenerator接口,实现了接口与实现分离。
IOC前生---采用工厂设计模式:利用工厂类去创建PDF报表类和HTML报表类,这样Service类只需要知道使用的是哪个接口,并且调用工厂类即可,不需要引入,具体的实现类,使我们的代码变得更加灵活。
IOC前生---采用控制反转:使用容器之后,Service类只需要知道要创建的对象是属于哪一个接口,在使用时,容器会为Service创建相应的bean,并且主动将资源推送给Service类。
最新文章
- error C2664: 'BOOL (PCERT_SELECT_STRUCT_A)' : cannot convert parameter 1 from 'CERT_SELECT_STRUCT *' to 'PCERT_SELECT_STRUCT_A'
- 01从c到c++
- ES6笔记(1) -- 环境配置支持
- FingerprintJS - 在浏览器端实现指纹识别
- 【Visual Lisp】Visual Lisp属性与方法
- mssql server提示无权限
- golang 依赖控制反转(IoC)
- 自定义标签体、MVC
- VS快捷键简单记录
- 非滤波单目视觉slam笔记1
- SSH远程登录密码尝试
- 利用Python进行数据分析——Numpy基础:数组和矢量计算
- Flexbox(弹性盒模型)完全指南
- mysql的event(事件)用法详解
- ViewBag赋值Html格式值
- (一):C++分布式实时应用框架----整体介绍
- 跟随我在oracle学习php(9)
- mysql常用修改创建语句
- linux下的c/c++调试器gdb
- 使用PD进行数据库建模时的问题