Spring学习之Spring的IOC原理了解(Spring控制反转原理了解)

目录

IOC简介

IOC背后的原理

画图讲解 IOC 底层原理

介绍

传统方式

存在的问题

工厂模式

IOC底层原理

IOC(BeanFactory 接口)


IOC简介

控制反转Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。

通俗将就是它是一种设计思想,由容器将设计好的对象交给容器控制,而非对象内部直接new。

IOC背后的原理

反射和工厂模式,反射原理使得我们通过对象的描述信息可生产出完整的对象,工厂模式使得IOC代码更加松耦合更合家里的生产Bean对象。

我们上篇讲到的创建User对象就是使用ioc实现的。

画图讲解 IOC 底层原理

介绍

比如我们在项目的开发中用到一个UserService类,里面有个execute()方法,而这个execute呢又需要用到类UserDao里面的一个add()方法。

传统方式

我们需要在execute方法中new一个UserDao对象,然后调用其add方法,如下图

 

存在的问题

我们在UserService类中写死了UserDao,如果将来我们修改了UserDao的名字或者包名,那么就得需要去UserService中进行修改一遍,这里就是耦合度比较高。

工厂模式

我们可以提供一个生产UserDao对象的工厂UserDaoFactory,然后再UserService中调用这个工厂来产生UserDao对象。

 

这里我们看到虽然UserService与UserDao解耦了但是UserService跟UserDaoFactory又耦合了,其实这里还是可以接受的,我们追求低耦合是没有错的,但是在项目开发中要是说真的没有任何一丝丝的耦合是真的非常难做到的。

IOC底层原理

我们需要用到xml解析、工厂模式以及反射。

 

这里的过程都是Spring容器帮我们完成的,即使你不会xml解析不懂反射不知道工厂模式也没关系,因为你写好xml配置文件后,后面的执行是无感的。

IOCBeanFactory 接口)

1、IOC 思想基于 IOC 容器完成,IOC 容器底层就是对象工厂。
2、Spring 提供 IOC 容器实现两种方式:(两个接口)
(1)BeanFactory:IOC 容器基本实现,是 Spring 内部的使用接口,不提供开发人员进行使用
* 加载配置文件时候不会创建对象,在获取对象(使用)才去创建对象
(2)ApplicationContext:BeanFactory 接口的子接口,提供更多更强大的功能,一般由开发人
员进行使用
* 加载配置文件时候就会把在配置文件对象进行创建
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喜欢编程的夏先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值