spring3学习笔记(二)初识IOC
2018-03-17 本文已影响0人
菜鸟要逆袭
什么是IOC
IOC即控制反转,具体的教科书式的及时可以百度。在我的理解当中IOC就是在spring中,将对象的创建交给spring进行管理,不需要手动去创建所需要的对象。这很好的实现了实际开发中需要特别注意的低耦合
IOC出现之前的创建对象过程
/*创建一个普通类,调用其中的aFunciton方法*/
public class A{
public void aFunction(){
...
}
}
/*第一种:普通实现,缺点耦合程度高*/
A a = new A();
a.aFunction();
/*第二种:工厂模式实现,缺点servlet和工厂之间依然存在耦合*/
public class Factory{
//提供返回A类对象的方法
public static AService getService(){
return new AService();
}
}
public class AServlet{
AService aService = Factory.getService();
aService .aFunction();
}
IOC的底层实现过程
IOC实现的底层所需要的技术有:xml配置文件、dom4j解析xml、工厂设计模式、反射
下面用代码来演示IOC的底层实现过程
//在UserServlet类中调用UserService类中的userFunction方法的实现过程
public class UserService{
public void userFunction(){
......
}
}
public class UserServlet{
//自动得到UserService的对象,不用new创建
UserService userService = Factory.getService();
userService.userFunction();
}
//创建xml文件配置文件,配置对应类
<bean id="userService" class="com.hobbes.UserService"/>
//创建工厂类
public class Factory{
public static UserService getService(){
//1.使用dom4j解析xml文件
//2.根据id=“userService”,得到id值对应的class属性值
//3.根据反射创建类对象
Class clazz = Class.forName("userService");
UserService uService = clazz.newInstance();
//4.返回所创建对象
return uService;
}
}
看了上面的底层实现过程,想必你已经对IOC有了一些初步的认识,IOC可以根据xml文件自动创建我们想要的对象,降低类与类之间的耦合度,从而减少类之间的依赖性。