B站上录制有对应的视频,有需要的小伙伴可以了解一下,b站地址:https://www.bilibili.com/video/BV1bY41167rg/?spm_id_from=333.999.0.0
课程前言
作为JAVA开发者,几乎每天都与spring为伴,通过百度或者idea工具可以快速搭建一个spring项目,在此基础上进行开发。我们能够熟练使用spring,但它对于我们来说就像一个黑盒子,在运行的过程中做了哪些动作,可能有很多小伙伴都不太清楚,而接下来的旅程我们将要从spring源码来解密它到底做了什么。
版本问题:
你可能有些奇怪,Spring已经出到了6.0 +版了,为什么还要讲1.0这个老古董?
阅读源码的核心是把握主干,就像一棵树,框架的总体流程是树干,细节是叶子,枝干长得粗壮厚实,叶子才能茂盛,阅读源码切忌陷入细节,看到一个方法一直跟进去,最后迷失了方向。
回想一下,自己阅读源码的惨痛记忆,是不是使用debug,看到方法就按F7,不断深入,一步步陷入泥泞,再也出不来,最后放弃了。另外一个可怕的点是不看注释,认为英文看不懂或者注释不重要,直接忽略,Spring的注释特别友好,人家害怕你看不懂,写得特别详尽,不看注释就是一种损失。(设计是树根,流程是主干,细节是叶子)
- 1.0版本的代码量少,要把握主干跟简单,没有太多复杂的扩展功能,学起来要简单很多,不容易陷入细节。
- 高版本是在低版本的基础上进行优化和扩展,与低版本一脉相承,总体的设计思想差不多,学完低版本看高版本将事半功倍。
源码地址我放在评论区,有需要的自取。
spring 1.0版本,源码地址:https://sourceforge.net/projects/springframework/files/springframework/1.0 M1
课程内容:
分5部分内容(画图):
- Spring容器(IoC)启动过程,如何实现单例、解决循环依赖、反射以及使用了哪些设计模式
- Aop实现原理,我们都知道aop使用动态代理原理,但忽略了责任链模式,在这块内容中,我们将一起看看spring是怎么做的
- 事务管理,事务传播特性
- JDBC,使用jdbc需要自己处理很多异常,而spring是怎么帮我们屏蔽掉这些
- Spring MVC,使用spring做web项目居多,这块内容可以了解是怎么跟tomcat结合起来,以及接受到请求之后如何分发等内容。
以上5点就是接下来要分享内容。那么我们现在开始spring源码之旅。
下载源码:
-
打开浏览器,输入源码地址:https://sourceforge.net/projects/springframework/files/springframework/1.0 M1
-
点击下载
-
放到本地路径,解压文件夹
-
导入idea,打开idea,找到菜单栏 File -> open,然后选择解压出来的源代码文件