1,理解控制反转
以前一直说着这个词,然后把它等于上ioc这个词,再等于上代码里一个bean里依赖了其他bean,不用new,用注解,用xml去描述,就可以了。能用就行了,实际理论的不管也不影响编码,其实能用了内心也是理解是怎么回事的,知识理论上说不好而已。
我觉得只要理解一个事情就好了,ioc所谓的控制翻转,它控制翻转的是什么?
依赖对象的获得被反转
把一个bean中对其他bean的依赖这个事提取出来,统一由一个容器管理,解耦了bean管理和业务的代码(工厂方法模式不就干这事嘛)
最后,Spring提供了一个IoC容器来管理对象的生命周期、依赖关系,这也是spring的最核心的基础组件。
其实控制反转也是一种设计模式,的确,从项目层面抽取了管理bean依赖关系,彻底解耦bean注入和业务代码,也是一种软件开发中的思想。
谈谈对Spring IOC的理解 http://www.xuebuyuan.com/Linux/2015-01/112409.htm
2,IoC容器
它要完成什么事?
通过解析bean依赖关系的描述,容器需要创建出项目中所有需要管理的bean,然后注入。
那么拆成打的两步:1,把依赖关系描述解析成bean;2,把bean注入
但是,既然是bean之间有依赖关系,当生产一个bean时,它依赖的bean也需要已经产生,所以在一个软件中,触发开始初始化容器的时候是把项目中用到的bean看成树结构的样子,然后一次递归的生产bean,注入。有点像目录结构遍历。
比如:A依赖B B依赖C,那么A生产时会触发B生产,然后触发C生产。
所以,我们阅读IoC源码时也会看到这样的实现。
3,IoC容器的实现
BeanFactory和ApplicationContext
BeanFactory是容器基础设计,ApplicationContext增加了针对企业软件一些扩展功能,应该说后者是前者的高级形态。
以上就上有关SpringIOC代码阅读的全部内容,学步园全面介绍编程技术、操作系统、数据库、web前端技术等内容。