一:什么是SpringIOC
IOC即Inversion of Control,控制反转,是一种将设计好的对象交给容器来管理的设计思想。
控制:区别于传统意义上的对象内部直接通过New的方式创建对象,IOC将创建对象的过程交给了一个容器来执行,解除程序对对象的依赖关系,而IOC容器就控制了对象,控制着外部程序对对象的获取只能通过IOC容器来获取,不能直接越过IOC。
反转:正转即是程序在一个对象中直接创建依赖对象,反转即IOC容器帮助程序查找和注入依赖对象,这个对象知识被动的接受依赖对象,它所拥有的依赖对象不是由它自己所创建的而是IOC塞给他的。
二:IOC的作用
区别于传统程序的高耦合,使用IOC设计思想设计出的程序耦合性大大降低。传统程序对象都是在类的内部主动创建,类和类之间是高耦合;使用IOC之后,创建对象的过程由IOC容器来接管,再通过容器来注入对象,对象与对象之间是低耦合,使程序体系结构变得更加灵活。
三:IOC和DI
DI即Dependency Injection,依赖注入,容器动态地将某个依赖关系注入到组件之中。
依赖注入的目的是为了提高组件重用性,使程序的扩展性大大提高,使用依赖不再关系出处,配置之后直接使用来完成业务。
IOC和DI的关系:DI需要在IOC的控制基础上来完成注入,被注入对象依赖IOC容器,IOC容器配置依赖对象。