IOC基本底层原理

二.IOC基本底层原理

2.1 工厂模式:

工厂模式是java常见的设计模式之一,提供了一种创建对象的模式,相对于最原始的创建对象的方法,降低了耦合度

通过工厂模式,将创建对象的权利移交工厂,我们不再通过new来创建我们所需的对象,而是通过工厂来获取我们需要的对象。

比如我们现在UserService类中想要调用UserDao类中的add()方法,如何用工厂模式来实现呢?

先创建UserDao类

public class UserDao {
    public static void add(){
        System.out.println("hello");
    }
}

在创建工厂

public class UserFactory {
    public static UserDao getUserDao(){
        return new UserDao();
    }
}

我们可以看到,在工厂中就创建了一个新建UserDao对象的方法

创建UserService类,调用工厂类中方法

public class UserService {
    @Test
    public void execute(){
        UserDao dao = UserFactory.getUserDao();
        dao.add();
    }
}

2.2 IOC

IOC底层原理主要用到的有:xml解析,反射,工厂模式

具体过程如下:

首先先创建并配置xml文件

<bean id="dao" class="com.ccw.myExer.day01.factoryTest.UserDao"></bean>

创建工厂类

public class UserFactory {
    public static UserDao getdao() throws Exception{
        //1.xml解析
        String classValue = "com.ccw.myExer.day01.factoryTest.UserDao";
        //2.通过反射来创建对象
        Class clazz = Class.forName(classValue);
        return (UserDao) clazz.newInstance();
    }
}

2.3 IOC接口

Spring提供IOC容器有两种实现方式(两个接口)

1.BeanFactory:IOC容器基本实现,是Spring内部的使用接口,一般不提供给开发人员使用

2.ApplicationContext:BeanFactory的子接口,提供更多更强大的功能,适用于开发人员

​ 区别:BeanFactory在加载时不会创建对象,只有在使用(获取)对象是才进行加载
​ ApplicationContext在加载配置文件时就创建对象

ApplicationContext优于BeanFactory:让服务器在启动时就创建好了对象

主要的两个实现类

image-20220626192516013

区别:前者的路径需要写在盘符下的路径(绝对路径)

image-20220626193307483

后者则只需要写src下的类路径image-20220626192829211

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值