spring源码学习(二)
文章目录
先来一个简单的面试题:spring默认是单例的吗?
spring 默认单例。
本文我们讲解spring IOC
spring IOC体系
spring IOC不可缺少的功能:管理Bean(BeanFactory)、定义Bean(BeanDefinition)、加载解析注册Bean(BeanDefinitionReader)
管理Bean(BeanFactory)
BeanFactory用于对Bean的管理。
定义Bean(BeanDefinition)
BeanFactory创建Bean的时候,需要知道Bean是怎么样的,所以有了BeanDefinition来定义Bean,通过BeanDefinition就能知道怎么创建bean。
加载解析注册Bean(BeanDefinitionReader)
有了BeanDefinition,BeanFactory要获取到BeanDefinition,中间的桥梁就是BeanDefinitionReader。因为beanDefinition一般都是由xml或者properties文件定义的,BeanDefinitionReader就是把他们转换成beanDefinition。
上面的画图工具是:https://www.processon.com/mindmap
spring IOC实现流程、
这个小部分需要知道下面几个功能。
BeanDefinition加载解析与注册过程
bean获取与创建流程
ApplicationContext创建bean是在哪一步?new ApplicationContext()构造函数里面。
以上画图工具:https://www.processon.com/diagraming/
这里有一篇简化ioc的文章帮助更好的理解:https://www.xilidou.com/2018/01/08/spring-ioc/
代码在这里:https://github.com/szfst/xilidou-framework