IOC容器底层原理

一、IOC底层实现原理

框架 = 解析 + 反射 + 工厂

XML解析

XML配置文件,配置创建的对象

工厂模式

原始的方式是在UserServicenew一个UserDAO的对象,然后调用对象中的方法,这样使得两个类的耦合度很高。
在这里插入图片描述
而工厂模式将new一个UserDao通过UserFactory工厂类来实现,降低了UserServiceUserDao之间的耦合度,但还是存在耦合的问题,所以需要进一步降低耦合度。
在这里插入图片描述

反射

通过XML解析,然后利用反射创建文件

IOC整个过程

第一步:xml配置文件,配置创建的对象

    <!--配置User对象创建-->
    <bean id="Dao" class="spring5.UserDao"></bean>

第二步:创建工厂类,通过解析xml配置文件和反射实现。Service类通过工厂类调用Dao

public class UserFactory {
    
    public static UserDao getDao(){
        
        String classValue = class属性值;   //xml解析
        Class clazz = Class.forName(classValue);//通过反射创建对象
        return (UserDao) clazz.newInstance();
    }
}

二、IOC(BeanFactory 接口)

IOC思想基于IOC容器完成,IOC容器底层就是对象工厂

Spring提供IOC容器实现两种方式:

  • BeanFactory接口:IOC容器基本实现,是Spring内部的使用接口,不提供开发人员进行使用。加载配置文件时候不会创建对象,在获取对象(使用)才去创建对象。
  • ApplicationContext接口:是BeanFactory接口的子接口,提供更多更强大的功能,一般由开发人员进行使用。加载配置文件时候就会把在配置文件对象进行创建。

ApplicationContext接口有两个实现类

ApplicationContext context = new ClassPathXmlApplicationContext("userBean.xml");
ApplicationContext context1 = new FileSystemXmlApplicationContext("D:\\Java\\workspace_idea\\Spring5_demo1\\src\\userBean.xml");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值