IOC也叫做控制反转
在一开始学习java的时候创建两个类,(非静态)A和(非静态)B,如果在类A中需要用到B中的东西,就必须要在A中一开始写B b = new B();
这样的话,如果类B中A所需要的东西发生改变,就需要重新写A中的相关方法。如果一两个还好,如果变化了上万条的话就太麻烦了;
后来又有了工厂模式,就是建立一个中间类让改变的方法调用写在里面,就拿servlet和service来说,servlet中调用service中的业务逻辑应该就是
工厂模式一类的,这时候servlet和用户是隔离了,但是servlet和service之间的关系又太密切了。
因为编程就要遵循高内聚,低耦合的原理,耦合度太高的话就相互之间的关系太紧密,变化一个,其他都要手动跟着变化,太过于麻烦,而且容易出错。
IOC就应该是解决这个问题的一个方法了
IOC的基本原理是让原本是程序员去创建的对象,交由配置好的文件去创建。
IOC的基本原理(xml配置方法)应该分为几个部分:1、创建xml配置文件,<bean id = "id名字" class= "需要创建对象的类路径"/>
2、由spring(内部创建工厂类+使用dom4j解析配置+反射)
例子://返回UserService对象的方法
public static UserService getService(){
//1、使用dom4j解析xml配置文件
//根据id值获取id值对应的class属性值
String classValue = "class属性值";
//2、使用反射创建类对象
Class clazz = Class.forName(classValue);
//3、创建类对象
UserService service = clazz.newIntance();
return service;
}
当然上面的过程都是spring内部进行的,你要做的就是配置好xml配置文件。