什么是IOC
IOC即控制反转, 就是把对象创建和对象之间的调用过程, 交给Spring进行管理, 从而降低耦合度.
举个例子, 如果我们要在一个类(U1)里调用另一个类(U2)的普通方法, 则我们需要在U1里通过new关键字创建U2的对象并调用其中的方法, 但这样耦合度太高.
一个改进的方法是使用工厂模式: 创建U2的工厂类, 比如:
class U2Factory{ public static U2 getU2(){ return new U2; } }
我们可以调用工厂类的静态方法, 直接在U1中调用U2的普通方法:
class U1{ U2 obj2 = U2Factory.getU2(); obj2.U2Method(); }
但这样还是有一定耦合度, 我们可以使用IOC的方法, 将耦合度降到最低:
第一步: 配置xml, 配置创建的对象
<bean id="obj2" class="com.Ryan.Spring5.U2"></bean>
第二步: 利用反射, 创建工厂类
class U2Factory{ public static U2 getU2(){ String classValue = class属性值; //1.xml解析 Class clazz = Class.forName(classValue); //2.通过反射创建对象 return (U2)clazz.newInstance(); } }
这样便进一步降低了耦合, 如果后期要改U2类, 则直接改配置文件即可