Spring框架中IOC与DI

Spring中IOC与DI

前言

在了解什么IOC与DI之前,要先大致了解Spring框架
Spring框架是一种企业常用的轻量级框架,其技术核心就是IOC(控制反转)与AOP(面向切面编程)。

一、什么IOC(控制反转)?

IOC(Inversion of Control)很多书译为控制反转,也有一些书籍翻译为控制倒置。那么什么是控制反转呢?我的理解是控制权发生了反转。举个例子,对象A在初始化或使用时需要用到对象B,那么A就必须使用已经声明的对象B或者创建一个对象B,这种情况下,我们称之为A依赖于B。注意,这个时候主动权是在我们自己手上的。但是,当我们引入IOC后,对象A在初始化或者使用的时候会交由IOC去使用已经声明的对象B或者创建对象B,这个时候主动权在IOC手上,已经不是我们能控制的了,这就是所谓的控制反转。

二、通俗理解IOC

可能上面的例子有些绕口,大家理解的不是很清楚,我们举一个通俗一点的例子:
不知道大家有没有过相亲的经历,虽然本人母胎solo,但是幸好还没有遭受相亲的荼毒[贱笑.jpg]大家相亲都是通过谁介绍的呢,相信除了父母亲人外很大一部分都是来自婚恋网站吧。比如我之前找对象,就想找一个有颜有钱的小奶狗,但是遇不到······但是当我登录婚恋网站,把自己的要求输入,婚恋网站就会通过我的要求匹配到一堆所谓的有颜有钱的小奶狗[嘻嘻嘻.jpg]。之前自己找对象的时候,主动权在自己的手里,后来由于婚恋网站的介入,我就不自己找对象了,而是由婚恋网站给我推送,这时主动权就在婚恋网站那里,婚恋网站在其中充当的角色就是IOC。

三、什么是DI(依赖注入)?

DI(Dependency Injection)即依赖注入。怎么理解DI呢——上文说过对象A需要使用对象B,即A依赖B,我们引入IOC后,对象A与对象B没有了直接的关系,实现了解耦,那么注入依赖是谁来完成的呢?就是使用DI。至于DI到底是如何实现依赖注入的——反射。
反射是JDK1.3后出现的一个较为重要的特征,至于Java中的反射机制那就是后话了,那是一个大课题,笔者也刚刚入门,在此就不赘述了。

总结

DI其实就是IOC一种实现方式,实现IOC的方式有很多,DI只是一种方式!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值