Spring之IOC理论推导

IOC理论推导

在我们之前的业务中,用户的需求可能会改变我们原有的代码,如果程序修改量特别大,修改一次的成本很高!

使用一个set接口,已经发生了革命性的变化:

//利用set进行动态实现值的注入
public void setUserDao(UserDao userDao) {
    this.userDao = userDao;
}
  • 之前,是程序主动创建对象,控制权在程序员手里
  • 使用了set注入,程序不再具有主动性,而是被动接受对象

这种思想,从本质上解决了问题,我们程序员再也不用管理对象的创建了,系统的耦合性大大降低,可以更加专注在业务的实现上!这是IOC原型!




2.1 IOC本质

  • 什么是IOC

    • 把对象创建和对象之间的调用,交给Spring管理
    • 使用IOC的目的:降低代码之间的耦合度
  • IOC底层原理

    • xml解析
    • 工厂模式
    • 反射
  • 原理解析:(UserService类调用UserDao方法)

    • 原始方式:在UserService中创建UserDao实体,然后执行方法 ===> 耦合度太高了

    • 工厂模式:通过一个工厂类创建UserDao实体,然后在UserService中调用

      在这里插入图片描述

  • IOC原理解析

    • xml配置文件:配置创建的对象

    • service类调用dao类方法:创建工厂类

      • xml解析得到class属性值

      • 通过反射创建对象(先得到字节码文件再创建得到对象)

    在这里插入图片描述

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

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

    • BeanFactory:IOC容器基本实现方式,是Spring内部使用的接口,不提供给开发人员使用
    • ApplicaitonContext:BeanFactory接口的子接口,提供了更多更强大的功能,一般面向开发人员使用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值