概念和原理
- 什么是IOC?
(1)控制反转,把对象创建和对象之间的调用过程,交给Spring进行管理
(2)使用目的:降低耦合度(各类之间依赖度) - IOC底层原理
底层主要三部分:xml解析、工厂模式(降低耦合度)、反射
(2)IOC过程:进一步降低耦合度
第一步:xml配置文件,配置创建的对象
<bean id="user" class="com.company.spring5.User"></bean>
第二步:有service和dao类,创建工厂类
class UserFactory{
public static UserDao getDao(){
//1.xml解析
String classValue=class属性值;
//2.通过反射创建对象
Class clazz=Class.forName(classValue);
//返回创建对象
return (UserDao) clazz.newInstance();
}
}
IOC接口
- IOC思想基于IOC容器完成,容器底层就是对象工厂
- Spring提供IOC容器实现两种方式:两个接口
BeanFactory
:IOC容器基本实现,是Spring内部接口,不提供开发人员使用
*加载配置文件的时候不会创建对象,在获取对象(使用)时才去创建
ApplicationContext
:BeanFactory接口的子接口,提供更多更强大功能,一般由开发人员进行使用
*加载配置文件的时候就会创建对象 ApplicationContext
接口有实现类:主要FileSystemXmlApplicationContext(带盘符路径)
和ClassPathXmlApplicationContext(src下路径)