Spring源码的学习方法和知识地图

目的意义

Spring对于Java工程师的重要地位可参考语文、数学在小学课程里地位。当然啊,学不好也不是不行。说这个又不得不提我老公。人家凭借自己是东北人,比我这个山东人高考少一百多分。相当于一科没考嘛!人家不也工作的挺好嘛。老公为了向我体现实力说:那年数学特别难,自己考了100(满分150)呢。我无奈的摇摇头:我考了130多。

工作了,咱们终于摆脱了地域上的歧视。渐渐淡忘不能自主投胎的遗憾。Spring不能瘸腿呀。在Spring上最显示功力的地方就是Spring的源码。对它的掌握,各种花费时间的问题:启动时报错无法启动啦,执行效果问题啦。处理起来就有底气了,可以大大地节省时间。

学习方法

学习Spring源码,需要带着目标和问题去看。这个很好理解:一千个人心中有一千个哈姆雷特。每个人看到源码的注意点是不同的,想要起到更好的效果就像故事一样要有一条主线,自己的目标和问题就是主线。

怎么才能有目标和问题呢?首先要有大局观,对Spring要有一个整体的了解。可以参考《学习Spring的思考框架》这一篇。里面有张思维导图:

e43609d85c64569d8b16a4fb1d7ccb22.png

提出了三个基本问题:

  • 我们现在是什么样的?

  • 我们要做成什么样(解决什么问题、有什么收益)?

  • 怎么才能达成(解决路径)?

通过这三个问题解释了Spring的目的意义。引出了Spring的三大核心:控制反转、依赖注入和AOP。

核心是最先要掌握的东西。但是一开始就研究Spring源码会被Spring源码中的细枝末节带偏,脱离主线。因为其中99%的代码是为了解决1%的问题。所以我写了三篇手撕Spring源码的文章:

手撕spring核心源码,彻底搞懂spring流程

手撕Spring源码(二),彻底理解Spring后置处理器

手撕Spring源码(三),彻底理解Spring循环依赖原理

旨在帮助大家把细枝末节去掉,回归Spring源码的设计本身,看代码的核心部分都是在解决什么问题。

然后才是问题驱动,带着问题对Spring源码进行debug。看Spring是怎么解决这些问题的。《SpringBoot启动原理》有详细介绍怎么带着问题去debug源码。

知识地图

在《网络通信知识地图》和《总结篇:消息中间件MQ的学习境界和路线》中我都提到过:知识地图是一种知识导航系统,并显示不同的知识存储之间重要的动态联系。不是具体的知识点,而是知识点的索引。

我把Spring源码学习人工的划分为4个阶段。每个阶段有对应的文章供参考。

大局观

代码整洁之道--边界

你看不懂的spring原理是因为不知道这几个概念

专治不会看源码的毛病--spring源码解析AOP篇(2017版)

源码分析

Spring参数的自解析--还在自己转换?你out了!

SpringBoot优雅退出

具体应用

SpringBoot整合web容器

把对象交给spring管理的3种方法及经典应用

Java&Spring过时的经典语录

问题分析

《Spring Kafka的异步bug》

Spring Boot 使用的经典错误-找不到Bean了

总结

说自己掌握了一门语言至少要掌握基本的语法和数据结构、核心库、常用第三方框架、流行的开发框架和部署方法。而这些知识底层有很强的关联性,不断增加自己的知识的深度,更好的触类旁通。

编程一生

因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。

PDCA方法论,检查自己是否错过更新:每周三晚上8点左右,我都会更新文章,如果你没有收到,记得点开【编程一生】公众号找一下(*^▽^*)

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值