1、IOC容器和依赖反转模式
在Spring中,IOC容器是实现依赖反转的载体,他可以在对象生成或初始化时直接将数据注入对象中,也可以通过将对象引用注入到对象数据域中的方式来注入对方法调用的依赖。
2、IOC的应用场景
在spring中,spring IOC 提供了一个基本的javabean容器,通过Ioc模式管理依赖关系,并通过依赖注入和AOP切面增强了为javaBean这样的POJO对象赋予事务管理、声明周期等基本管理功能。
相比较EJB模式,我觉得就是组件引用其他组件VS向组件注入其他组件。
3、IOC生成:
1)创建IOC配置文件的抽象资源,这个抽象资源包含了beanDefinition 的定义信息。
2)创建一个Beanfactory,如defaultListBeanfactory.
3)创建一个载入Beandefinition的读取器,这里使用XmlBeanDefinitionReader来载入XML文件形式的Beandefinition,通过回调配置给BeanFactory。
4)从定义好的资源位置读入配置信息,具体的解析过程有xmlBeanDefinitionReader来完成。完成整个载入和注册Bean定义之后,需要的IOC容器就建立起来了,这个时候就可以直接使用IOC容器了。
4、IOC的初始化过程
1)第一个过程是Resource定位过程。
2)第二个过程是Beandefinition的载入。
3)第三个过程是向IOC容器注册这些Beandefinition的过程。
注:在Spring IOC的设计当中,Bean定义的载入和依赖注入是两个独立的过程。