IoC,Inversion of Control(控制反转)。
是一种设计思想,在Java开发中,将你设计好的对象交给容器控制,而不是显示地用代码进行对象的创建。
把创建和查找依赖对象的控制权交给 IoC 容器,由 IoC 容器进行注入、组合对象。这样对象与对象之间是松耦合、便于测试、功能可复用(减少对象的创建和内存消耗),使得程序的整个体系结构可维护性、灵活性、扩展性变高。
使用 IoC 的好处:
- 资源集中管理,实现资源的可配置和易管理
- 降低了资源的依赖程度,即松耦合
- 便于测试
- 功能可复用(减少对象的创建和内存消耗)
- 使得程序的整个体系结构可维护性、灵活性、扩展性变高
DI(Dependency Injection)依赖注入,是 IoC 容器装配、注入对象的一种方式。
通过依赖注入机制,简单的配置即可注入需要的资源,完成自身的业务逻辑,不需要关心资源的出处和具体实现。
spring 提供了三种主要的方式来配置 IoC 容器中的 bean
- 基于 XML 文件配置
- 基于注解配置
- 基于注解 + java 代码显式配置