# 第二章:重新认识 IoC IoC主要实现策略: * 依赖查找、依赖注入 (1)服务定位模式 (2)依赖注入:构造器注入、参数注入、Setter注入、接口注入 (3)上下文依赖查询 (4)模板方法设计模式 (5)策略设计模式 IoC 容器的职责: - 通用职责 - 依赖处理 - 依赖查找 - 依赖注入 - 生命周期管理 - 容器 - 托管的资源(Java Beans 或其他资源)-- 比如说spring的事件监听,可以关联其他事件的开始或者变更 - 配置 - 容器 -- 定时任务 - 外部化配置 -- 属性配置,xml配置 - 托管的资源(Java Beans 或其他资源)-- 对线程池进行配置 依赖查找和依赖注入的区别? ![image-20220912214647116](assets/image-20220912214647116.png) * 依赖查找是主动或手动的依赖查找方式,通常需要依赖容器或标准 API 实现。而依赖注入则是手动或自动依赖绑定的方式,无需依赖特定的容器和API。 构造器注入 vs setter注入 ![image-20220912214918651](assets/image-20220912214918651.png) ## 面试题 1、什么是IOC? ![image-20220912215825032](assets/image-20220912215825032.png) 2、依赖查找和依赖注入的区别? ![image-20220912220111645](assets/image-20220912220111645.png) 3、Spring 作为 IoC 容器的优势: - 典型的 IoC 管理,依赖查找和依赖注入 - AOP 抽象 - 事务抽象 - 事件机制 - SPI 扩展 - 强大的第三方整合 - 易测试性 - 更好的面向对象