IOC容器的依赖注入
来源:互联网 发布:数码兽传说 网络侦探pc 编辑:程序博客网 时间:2024/05/17 08:35
4. IOC容器的依赖注入
通常依赖注入的过程是用户第一次向IOC容器索要Bean时触发的。通过getBean()
(P54 代码清单2-22)
方法,触发依赖注入。
getBean()只是一个方法的入口,真正执行的时doGetBean()方法。在这个方法中,会通过createBean方法创建Singletonbean的实例。在这个过程中,Bean对象会依据BeanDefinition定义的要求生成。具体的执行过程是在doCreateBean()方法中执行的。通过BeanWrapper对象来持有创建出来的Bean对象。
与依赖注入相关的方法有createBeanInstance(P61 代码清单2-24)和popularBean(P63 代码清单2-27),在createBeanInstance中生成了Bean所包含的java对象,这个对象的生成方法有很多不同的方法。
这里使用的CGLIB对Bean进行实例化,CGLIB是一个常用的字节码生成器的类库,它提供了一系列的API来提供生成和转换java的字节码的功能。
完成Bean对象的依赖关系的设置,进而完成整个依赖注入的过程,这个过程涉及到对各种bean对象的属性的处理过程(即依赖关系处理的过程),这些依赖的关系处理的依据就是已经解析得到的BeanDefinition。这些工作交由populateBean方法完成。通过applyPropertyValues对属性行进行解析,然后进行注入。
接下来具体解析applyPropertyValues方法
通过使用BeanDefinitionResolver来对BeanDefinition进行解析(P66 2-28,P67 2-29)。在完成解析之后,已经为依赖注入准备好了条件,通过BeanWrapper中的setPropertyValues(P70 2-30)进行实现。
总结,在Bean的创建和对象的依赖注入的过程中,需要依据BeanDefinition中的信息来递归完成依赖注入。依赖注入有两个方面:一个是查找需要的Bean和创建Bean的递归调用。另一个是在依赖注入时,通过递归调用容器的getBean方法,得到当前Bean的依赖Bean,同时也触发对依赖Bean的创建和注入。在对Bean的属性进行依赖注入时,解析的过程也是一个递归的过程。
- IOC容器的依赖注入
- IOC容器的依赖注入
- IOC容器注入依赖
- Spring的IOC容器—依赖注入
- Spring源码学习IOC(5):IOC容器的依赖注入
- Spring Ioc容器依赖注入
- 创建你自己的依赖注入容器Ioc Container
- 自建简单的依赖注入容器Ioc Container
- spring技术内幕5-IoC容器的依赖注入
- 3 IoC容器的依赖注入(1)
- 4 IoC容器的依赖注入(2)
- Spring:源码解读(IOC容器的依赖注入)
- Spring容器的控制反转(IOC)和依赖注入(DI)
- Spring IOC容器的依赖注入(源码角度)
- IOC容器的初始化与依赖注入过程
- spring IOC容器的初始化和依赖注入
- phalcon学习笔记--------依赖注入,容器IoC的理解
- spring技术内幕笔记:IoC容器的依赖注入
- 软件调试笔记66
- Android研究_Gralloc_1概述及库加载
- CONTAINING_RECORD宏的实现原理
- Udacity机器学习(进阶)P3用到的函数笔记
- 移动端android/ios低版本不兼容position:fixed属性
- IOC容器的依赖注入
- mysql常用命令-密码设置
- Java设计模式百例
- java练习题13
- Android Studio类注释 方法注释
- iOS 创建Framework
- task_struct结构体及其字段介绍
- SQLyog-12.5.0 64位 中文 破解版
- 内存 (Po学校 计算机科学 笔记整理)