一、IOC基本概念
- 控制反转:把对象创建和对象之间的调用过程,交给Spring进行管理;
- 使用IOC的目的:减低耦合度;
二、IOC底层原理
xml解析 + 工厂模式 + 反射
2.1、图解IOC底层原理
# 第一步:xml配置文件,配置要创建的对象
<bean id="userDao" class="org.star.UserDao"></bean>
# 第二步:创建工厂类
class UserFactory {
public static UserDao getUserDao() {
// 2.1、xml解析,获取bean中class的value值
String classValue = class属性值;
// 2.2、通过反射创建对象
Class clazz = Class.forName(classValue);
}
}
2.2、IOC核心接口
IOC思想基于IOC容器完成,IOC容器底层就是对象工厂。
2.2.1、BeanFactory
IOC容器的基本实现,是Spring内部的使用接口,不提供给开发人员进行使用。加载配置文件的时候不会创建对象,在获取(创建)对象的时候才会去创建对象。
2.2.2、ApplicationContext
BeanFactory接口的子接口,提供了更多更强大的功能,一般由开发人员进行使用。加载配置文件的时候就会对配置文件中的对象进行创建。
2.2.3、ApplicationContext接口的所有实现类