
Bean的概念在Spring框架出现之前就已经被提出了,笔者通过此篇文章剖析了Spring Bean在Spring IoC(控制反转)中「如何被生成」以及「如何被管理」。
注意:在本文中,bean和beanFactory开头大小写遵照Java语法中类与对象的定义。
从上图中可以看出bean可以通过三种方式定义,无论是由XML文件还是注解定义,作用都是「定义需要实例化的类」和「描述类之间的依赖」。
beanFactory通过反射技术来实例化对象并维护对象之间的关系,BeanFactory在Spring框架中是顶层接口(会在后面源码分析的部分介绍),实际上bean是被其子接口ApplicationContext的实现类来管理,实现类均表示在上图中。
- 好处:提高培养代码架构思维,深入理解框架
- 原则
- 定焦原则:抓主线
- 宏观原则:站在上帝视角,关注源码结构和业务流程(淡化具体某行代码的执行细节)
- 读源码的方法和技巧
- 断点(观察调用栈)
- 反调(Find Usages)
- 经验(Spring框架中doXXX是具体做处理的地方)
- Spring源码构建
- 下载源码(Github)
- 安装gradle5.6.3或以上
- 编译工程(顺序:core -> oxm -> context -> beans -> aspects -> aop)
- 工程 -> tasks -> other -> compileTestJava
- 原则
PS:源码剖析部分在今后将会补充至本文下方。