Spring基础03——Spring IOC和DI概述

时间:2022-08-17 05:17:12

1.什么是IOC与DI

IOC(Inversion of Control):其思想是反转资源获取方向,传统的资源查找方式要求组件想容器发起请求查找资源,作为回应,容器适时的返回资源,而应用了IOC之后,则是容器主动地将资源推送给它所管理的组件,组件所要做的仅是选择一种合适的方式来接受资源,这种行为也被称为查找的被动形式DI(DependencyInjection)-IOC的另一种表述方式:即组件以一些预先定义好的方式(例如setter方法)接受来自如容器的资源注入,相对于IOC而言,这种表述更直接。

2.IOC的发展过程

需求:生成HTML或PDF格式的不同类型的报表

IOC前生---分离接口与实现:PDF报表类和HTML报表类分别去实现ReportGenerator接口,实现了接口与实现分离。

Spring基础03——Spring IOC和DI概述

Spring基础03——Spring IOC和DI概述

IOC前生---采用工厂设计模式:利用工厂类去创建PDF报表类和HTML报表类,这样Service类只需要知道使用的是哪个接口,并且调用工厂类即可,不需要引入,具体的实现类,使我们的代码变得更加灵活。

Spring基础03——Spring IOC和DI概述

Spring基础03——Spring IOC和DI概述

IOC前生---采用控制反转:使用容器之后,Service类只需要知道要创建的对象是属于哪一个接口,在使用时,容器会为Service创建相应的bean,并且主动将资源推送给Service类。

Spring基础03——Spring IOC和DI概述

Spring基础03——Spring IOC和DI概述