首先,我们先看一下下图:齿轮就好比对象,对象之间互相啮合,完成齿轮的传动。如果其中某一个齿轮发生了变化,相应的齿轮运转就会受到很大的影响。就好比JAVA中的对象,比此依赖,高度耦合,一旦修改其中一个对象,就会牵一发而动全身。
再看下图:引入第三方齿轮(即IOC容器),让对象彼此都脱离依赖,即使出现一个变动,对其它的对象的使用影响也不大。实现解藕操作。
那么什么是IOC容器呢:
Ioc—Inversion of Control,即“控制反转”,它是一种设计思想。IOC容器就类似一个工厂,这个工厂里要生产的对象都在配置文件中给出定义,然后利用编程语言的的反射编程,根据配置文件中给出的类名(字符串方式)来动态地生成对象。以前需要咱们手写代表去作对象的依赖,现在完全交由IOC容器来控制,获得依赖对象的过程由自身管理变为了由IOC容器主动注入
那么,具体的操作步骤又是怎么样的呢?
第一步:编写工厂的配置文件(相当于告诉工厂,我需要让其创建哪些完整的对象,各对象之间的依赖关系是什么样的。)
第二步:通过new ClassPathXmlApplicationContext创建一个工厂对象。同时会根据配置文件进行对象创建,当工厂新建完成后,文件中的对象也一次性创建成功。且一次创建,随用随取。提高程序运行效率。避免多次IO,减少对象创建时间
第三步:如果需要获取对象,只需调用工厂对象的getBean("对象ID")方法,就可以获取对象。