工作了好多年,发现用的东西自己都不是太了解,于是开始深入学习,研究源码、原理,有了很长时间了,打算给大家分享我的学习。从spring源码开始吧,从流程到细节一步步进行,这篇文章主要介绍spring的加载粗略流程。
先上图:
首先介绍一下spring,spring有俩大功能:
ioc
控制反转、依赖注入,这是一种设计思想,本来由自己创建的对象,现在由spring根据你的配置来创建,并且依赖的对象也由spring进行注入,而不是自己主动获取依赖对象。
aop
面向切面编程,可以这么理解,通过代理的方式(代理包括jdk、cglib,这里先不说),将对象增强。
bean创建流程
所以总结下来,spring干了什么,就是创建bean,增强bean,缓存bean,所有的操作都是为了bean,
那我们就针对bean的创建一步步探索spring。
第一步:要进行bean创建,首先要有定义bean的配置,可以是注解、xml、json等配置方式
第二步:有了配置,要去读取配置(读取过程稍后细讲),并且将配置bean信息存储起来,spring