spring框架Ioc学习

Ioc(inversion of control):控制反转

理解:
(1)在Ioc没有出现之前,如果对象a需要依赖对象b,那么在a初始化或运行到某一个点的时候,需要去创建或者调用已经创建的对象b.不管是创建还是直接调用,控制权都在自己手里.
(2)Ioc出现之后,如果对象a需要依赖对象b,这是会有一个容器来管理这种需求,将对象b注入到对象a中,这样一个容器我们称之为Ioc容器.
综合(1)(2)我们可以理解到对象a依赖对象b从主动控制变成了被动行为,也就是控制被反转了.

DI(dependency injection):依赖注入

DI和Ioc其实是从两个不同的角度去描述同一件事情.
Ioc强调的是一种思想,DI注重的是手段,一种实践Ioc的方式:就是利用Ioc容器在运行期间,动态的将某种依赖关系注入到对象当中.

Ioc原理分析

spring Ioc容器执行的流程如下:
(1)资源定位,通过ResourceLoader来完成资源的定位
(2)容器通过 BeanDefinitionReader来完成定义信息的解析
(3)解析后的bean信息通过BeanDefinition对象来表示
(4)在Ioc中注册BeanDefinition,注册过程就是在 IOC 容器内部维护的一个HashMap 来保存得到的 BeanDefinition 的过程
这里写图片描述
源码解析推荐看该博客,针对IOC有一个系列的源码解析
http://blog.csdn.net/linuu/article/details/50829981

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值