Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想:主动变被动,手动化变自动化,对象反射出来,属性调用相应set方法。
别名:依赖注入
在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。理解好Ioc的关键是要明确“控制,控制什么,反转(有反转就应该有正转了),什么反转了”,那我们来深入分析一下:
●控制(控制什么):在传统的应用程序中,对象的创建是由程序本身控制的,我们可以直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;使用spring后,由Ioc容器来控制对象的创建;控制的内容是什么?那就是主要控制了外部资源获取(不只是对象包括比如文件等)。
●反转(权限反转):传统应用程序是由我们主动创建对象(正转),反转指程序本身不去创建对象,而变为被动的接收对象。
IOC容器:beanFactory(bean工厂)
总结:以前对象是由程序本分来创建,使用spring后,程序变为被动的接收IOC容器创建好的对象,所谓IOC,一句话:对象由spring来创建对象、管理对象生命周期、装配对象的属性和依赖的关系。