Spring IOC
IOC:Inversion Of Control,即控制反转,是一种设计思想。在传统的 Java SE 程序设计中,我们直接在对象内部通过 new 的方式来创建对象,是程序主动创建依赖对象;而在 Spring 程序设计中,IOC 是有专门的容器去控制对象。
控制:就是对象的创建、初始化、销毁。
反转:其实是反转的控制权,前面提到是由 Spring 来控制对象的生命周期,那么对象的控制就完全脱离了我们的控制,控制权交给了 Spring 。
- 创建对象:原来是 new 一个,现在是由 Spring 容器创建。
- 初始化对象:原来是对象自己通过构造器或者 setter 方法给依赖的对象赋值,现在是由 Spring 容器自动注入。
- 销毁对象:原来是直接给对象赋值 或做一些销毁操作,现在是 Spring 容器管理生命周期负责销毁对象。
总结:IOC 解决了繁琐的对象生命周期的操作,降低程序间的耦合(依赖关系)。
DI:Dependency injection,即依赖注入,是一种实现,而 IOC 是一种设计思想。程序把依赖交给容器,容器帮你管理依赖,这就是依赖注入的核心。
使用
1 | <dependency> |