spring源码学习方法
框架主体学习思路
1、学习前置要求
掌握基本的设计模式:如单例、工厂、代理、装饰、观察等,最好是所有的设计模式都有所了解,这有利于在阅读源码时理解spring开发人员的设计思路。
掌握基本的数据结构、算法:list、map;理解简单的锁,cas,aqs,unsafe包等
掌握反射:理解反射的概念,掌握反射api
多线程:了解线程概念、线程的状态,线程的启动与终止;了解常用的线程池。
JVM虚拟机:类加载机制、class字节码、
2、学习注意事项:
1、学习框架的目的:不只是为了面试,而是通过框架的学习,提升自己的代码设计、编写能力(wc,这种代码还能这样写,下次我也这样写。),以便后续遇到需要优化开源框架,自己造轮子的情况。
2、关注总体设计思路,以总-分的形式进行学习,先选择各种中间节点,关注总体结构,后研究细节。例如spring的bean创建包括 :xml、注解等获取BeanBefination---》填充拓展BeanDefination--》BeanDefination转化为bean--》存入ioc容器,之后再关注细节研究xml、注解读取过程,beanDefination增强过程,bean初始化过程,ioc容器存储bean过程(循环依赖)。这样先总后分,更有利于理解设计思路。
3、主要画图总结:遗忘是不可避免的,总结会让你梳理学过的内容,以后再用到的话,也可以通过自己的总结快速回顾。建议画图总结,毕竟“带字的一看就困,有图的过目不忘”。想画什么图,完全根据自己的喜好,不是给别人看的。
4、尝试猜测源码是怎么设计的,自己猜出来,并且验证确实是这样的,那就表示你也有spring框架开发人员的设计能力了。其实框架与我们写的代码不一样的主要原因就是我们在写代码的时候没有考虑那么多,就是莽,硬写。从源码的学习中了解这么写的原因,知道怎么写和知道为什么这么写是不一样的,前者是一个优秀的工具人,后者才是一个有思想的程序员。
5、记得检查和记笔记,源码也没有那么难嘛--来自28岁的秃头程序员张某。
3、学习顺序
暂定先IOC再AOP吧,学到哪算到哪。学习永无止境!
2021年8月6日

浙公网安备 33010602011771号