IOC实现之总结篇(六)

经过5篇文章,IOC的实现过程基本上已经讲清了,当然,还有些我没有讲,比如我们的组件扫描注解的实现又是怎样的,这点我原本打算写篇文章但想想还是放弃了,因为没有必要,看完上面5篇文章,相信你自己已经完全可以去理清注解的实现了!


再回到IOC的话题,Spring的IOC作为一个完整的容器产品,通过对它源码的阅读,我们看到了它精妙绝伦的设计,无论是对资源文件的抽象还是对POJO的抽象,Spring使用了大量的类来完成这个抽象过程,这个过程现在我们看起来简单但实际上却包含了Spring参与者的众多智慧,里面无论是代码结构还是设计模式都值得我们去学习,阅读源码除了清楚原理,最重要的还是借鉴作者的思维呐!


我们经常说IOC,IOC是 Inversion of Control 的缩写,既控制反转,什么是控制反转呢?我认为,控制和反转是两个概念,控制指的是创建具体对象的地方,反转指的是责任的反转,什么是责任呢?就是创建对象的责任!

假设有两个对象, 人类与斧头,  人类需要斧头;

在没有Spring以前,我们需要某个对象,得自己去进行创建,所以,你会在代码中写到 person.setAxe( new Axe() );

在这里,"控制方" 就是 "你";

而采用Spring之后,你将不需要去构建依赖的对象,由IOC容器帮你构建好并提供给你,这个过程我们也叫做DI(依赖注入) ,在这里,"控制方" 变成了IOC容器!

总结来说,控制反转就是说 创建所依赖的对象的职责从原本得自己来写代码创建而转换成了由Spring的IOC容器为我们来创建;


最后,IOC是Spring中最重要的底层实现,后面的Aop,事物,SpringMVC都得依靠容器内建立起的bean关系图来完成功能,在下面的文章中,我们开始来讲AOP的实现原理;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值