IOC:底层原理及操作
一、IOC的底层原理
-
概念
控制反转,把对象的创建和对象之间的调用过程,交给Spring进行管理。
-
目的
降低耦合度,
-
底层原理
xml解析、工厂模式、反射
-
使用步骤
第一步:在xml文件中添加bean,配置创建的对象
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="userDAO" class="com.atguigu.spring5.UserDAO"> </bean> </beans>
第二步:有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容器完成,IOC容器底层就是对象工厂
-
IOC容器实现的两种方式
① BeanFactory
IOC容器基本实现,是Spring内部的使用接口,一般不提供给开发人员使用。
特点:加载xml配置文件的时候,不会创建里面的对象,在获取对象才去创建
② ApplicationContext
是BeanFactory接口的子接口,比BeanFactory提供了更多更强大的功能,一般是由开发人员进行使用的。
区别:加载配置文件时,就会把内部的对象进行创建
-
ApplicationContext接口的实现类
-
BeanFactory接口的子接口及实现类