下图是我看完spring源码后画的流程图,从加载配置文件到最终完成bean的实例化初始化,包含了spring 12个核心方法,适用于对spring源码有一定了解的朋友进行辅助学习或者对源码感兴趣但不知从哪开始的朋友

源码学习方法

1、先梳理脉络、再去死扣细节

很多人在阅读源码的过程中,在不了解整体流程的情况下,直接开始看每一个源码中的方法及执行逻辑,但是源码中的代码太多了,每一个都看一下,浪费时间不说,更主要的是越看越没有信心,因此大家应该先把整体的脉络搞清楚了,然后再说细节的事情,先抓住主要矛盾,然后再解决次要矛盾

2、不要忽略源码中的注释

如果看过源码的朋友应该知道源码中包含了很多注释信息,但是并不是每一行代码上都有注释,在看到有注释的地方一定要格外注意,那里的注释不是白写的,一定会给予你很大的参考,给你一些详细的说明,所以, 源码中的注释一定要看,否则会忽略一些非常重要的核心点和思路。

3、大胆猜测,小心验证

很多人看源码的时候会发现有很多代码压根不知道表达什么意思,这个时候就需要我们大胆去猜测了,猜错了又不会扣你钱,不要害怕,就跟我们上学的时候分析古诗词一样,其实大家都不是作者,怎么知道作者怎么想的呢?所以大胆去猜测,小心去验证,有可能是对的,有可能是错的,那么对的记住,错的改正就可以了,不需要害怕。

4、见名知意

源码中的命名是非常规范的,所以看到接口名,类名,方法名,变量名,一定要去翻一下到底什么意思,其实很多方法点击进去之后你会发现就跟它方法的名字要表达的意思是一模一样的,不要不去看名字,直接就开始看逻辑,当猜到什么意思的时候,直接跳过就可以了。

5、擅于使用小插件、小工具

很多同学总是抱怨说自己的英文能力差,看源码看不懂,源码嵌套太多,看源码很容易晕,其实这些都是因为没有用好工具的原因,比如翻译插件,时序图插件等。

6、坚持坚持坚持

重要的事情说三遍,大家一定要坚持看源码,这个东西一定是难的,如果很简单的话岂不是所有人都学会了。绳锯木断,水滴石穿,阅读源码的努力是长期的,收益自然也是全面的,对个人的阅读理解,设计模式,架构设计,问题解决等能力都会有潜移默化的影响

spring全体系图解(纯手绘)相关推荐

  1. 漫画 Go 语言 纯手绘版

    漫画 Go 语言 纯手绘版 - haojiahuo - 掘金小册 小册介绍 您是否对Go语言充满兴趣,却又没有时间学习!是否有文字恐惧症怕看大篇幅的文字,那么我们专门花费大量的时间将一些难以理解的逻辑 ...

  2. 2022全新Java基础知识整理,阿里大牛纯手绘思维导图文档

    最近趁着年初空闲的时间,总结一下自己这么多年来使用Java的一些心得体会,主要是一些Java基础知识点相关的, 分享给刚刚入门的Java程序员和需要巩固Java基础的朋友们,希望可以给大家一些经验,能 ...

  3. 神棍工作室Logo(纯手绘)

  4. 纯手绘(留个纪念)-》每个飞机只有一个油箱, 飞机之间可以相互加油(注意是相互,没有加油机) 一箱油可供一架飞机绕地球飞半圈,问题:为使至少一架飞机绕地球一圈回到起飞时的飞机

    题目:每个飞机只有一个油箱, 飞机之间可以相互加油(注意是相互,没有加油机) 一箱油可供一架飞机绕地球飞半圈,问题:为使至少一架飞机绕地球一圈回到起飞时的飞机. 粉色为题解 蓝色为注释线颜色分类 红色 ...

  5. 手绘 v.s. 码绘(1.2 实践报告)

    目标 多角度比较手绘与码绘:技法.工具.理念.创作体验.呈现效果.载体.局限性.应用-- 思考深刻,理论完善,参考资料详实规范,必须引用文末的参考文章 使用各种论证方法,体现严谨清晰的逻辑 按时间线对 ...

  6. 阿里P8架构大神分享纯手写“kafka文档”看完直呼太牛!

    什么是 Kafka Kafka 是由 Linkedin 公司开发的,它是一个分布式的,支持多分区.多副本,基于 Zookeeper 的分布式消息流平台,它同时也是一款开源的基于发布订阅模式的消息引擎系 ...

  7. 25个超酷手绘插图的网站设计

    日期:2011/10/17       来源:line25.com      编译:GBin1.com 现在的数字世界中没有比看到纯手绘插图的网站了.手绘的插图和素描能够很好的帮助设计者注入自己的思想 ...

  8. GBin1分享:25个超酷手绘插图的网站设计

    为什么80%的码农都做不了架构师?>>>    日期:2011/10/17       来源:line25.com      编译:GBin1.com 现在的数字世界中没有比看到纯手 ...

  9. php手绘功能,手绘之于游戏,不仅仅是一种风格

    前言 手绘游戏这个名字其实并不准确,因为现今的游戏中或多或少都参杂着一些可以被称为手绘的元素,它用来被奠定和强化一部作品的艺术风格和特性.无论是纯手绘游戏,还是利用手绘辅助画面表现的游戏,在游戏艺术性 ...

最新文章

  1. LINUX环境下资源下载中文目录及中文文件名称问题
  2. PE里在计算机本地磁盘大小,没有U盘如何在电脑本地磁盘制作一个PE系统
  3. mysql 监听器_实例讲解Oracle监听口令及监听器安全
  4. 皮一皮:如何将紫薯变成绿薯?
  5. 【转载】企业级服务器设计与实现经验之插件系统基础篇
  6. Android短信拦截2019,关于征集2019年度信息科学领域重大项目立项建议的通告
  7. 重新上课,学习HTML的第一天
  8. js 当前日期增加自然月
  9. oracle安装 衍生进程已退出,linux安装oracle 出现问题
  10. emacs 剪切板_将Emacs用作RPG仪表板的5种方法
  11. 3d激光雷达开发(ndt匹配)
  12. 测试开发:提升测试效率都有哪些具体手段?
  13. python代码示例-Python numpy.cov()用法及代码示例
  14. C语言范例学习03-上
  15. 《通信原理》复习笔记3----第三章随机过程相关例题(重点与难点)
  16. 文件相似度比对工具的设计与实现
  17. java安卓屏幕护眼效果好_当前安卓机自带的护眼模式,比护眼大师的好嘛?
  18. 数据流图转换为软件结构图
  19. 世界上第一台计算机论文,世界上公认的第一台电子计算机是1946年诞生。.doc
  20. 2021-08-16

热门文章

  1. 程矢Axure夜话:Axure手机原型视频教程之微信公众ETC添加公众号
  2. fine tune openAI model ( 微调chatgpt)
  3. Python中的async with用法
  4. 我从外包辞职了,10000小时后,走进字节跳动拿了offer
  5. 关于credentials跨域问题
  6. marquee 和JS 滚动效果
  7. Java动态编程之Instrumentation
  8. NewBee商城:前端部分提示错误 th:href传参报错
  9. JAVA8~17新特性
  10. Android新技术PWA与GDD