IoC(Inverse of COntrol:控制反转)是一种设计思想或者说是某种模式。 DI 是具体实现方式

IOC 的实现有四种方式,

  1. 一种是服务定位也就是依赖查找,调用容器的 bean 查找借口查找 bean 实例,缺点,有侵入性,性能低。
  2. 一种是依赖注入,也就是 DI,注入有 4 种方式,构造器注入,属性注入,Setter 注入,接口注入。性能高,侵入小。
  3. 上下文依赖查询
  4. 模板方法设计模式,JdbcTemplate 的使用,不需要关心具体 callback 来源。

[IoC 和 DI 有区别吗?](https://gaohanghang.notion.site/IoC-DI-3f0fb9f528084e6a9494da5824867839)