本人刚毕业工作一年萌新。
求推荐 Spring 源码阅读相关书籍,或者学习路径。
目前,数据结构良好手搓 AVL 树勉强可,设计模式不太熟练,只是知道水平。 业务水平也只是一般,对于 IOC AOP 处于勉强会用的水平,自定义注解等还是会用。
求大佬们推荐 spring 源码阅读书籍,或者我目前不足以阅读源码,需要补充一些其他知识。
提前谢谢大佬们。
1
fkdog 2020-03-20 15:26:18 +08:00 2
等你读完源码,估计会是 0 收获。spring 的源码经过 16 年的迭代,内部实际上已经是非常庞大了。里边很多代码甚至都是为了修复 bug 的。你一眼看过去甚至还会好奇这么写是为什么。
所以最好的实践就是大致过一遍源码,了解一些核心模块的实现逻辑,细节性的东西就 pass,如果想自己去做框架,倒是可以借鉴一下一些细节的实现方法。 spring 说白了就是一套开发框架而已,个人更喜欢把时间精力放到计算机基础、网络通信、jvm 底层相关的方面上去。 |
2
RedBeanIce OP @fkdog 啊哈,,可能是我描述问题方式有问题,,
|
3
lewis89 2020-03-20 17:16:20 +08:00 1
@RedBeanIce #2 https://github.com/jonwinters/tiny-spring
基本同意楼上,Spring 作为工业级的代码,已经有十几年的历史了,里面细节很多,光是一大堆的 Util 就不知道给 Java 的反射 API 擦了多少屁股,你读了也没什么太多的卵用,如果是了解其设计思想跟模块,你看下我的 Fork 的代码就好了 |
4
keshawnvan 2020-03-20 18:05:17 +08:00 1
推荐你看下《从零开始写 JavaWeb 框架》,会从零开始实现一个支持 IOC,AOP 的框架,写完对 Spring 的原理就有个大概的了解了。
|
5
nortonlai 2020-03-20 18:49:14 +08:00 via Android 1
对源码最深的印象就是类名方法名贼鸡儿长,严重占用了大脑的内存
|
6
gz911122 2020-03-20 18:56:13 +08:00 1
阅读这玩意意义不大
不如看看 java 下一代那些云原生框架 |
7
ixx 2020-03-20 19:09:17 +08:00 1
自荐一下 《造一个方形的轮子》 系列 https://github.com/iuv/square
|
8
ufan0 2020-03-20 19:14:50 +08:00 via Android 1
我正在看的书籍是《 Spring 源码解析第二版》,书本+博客学习还行。
数据结构要求不高,但是设计模式需要,熟知才能看得心里有数。 |
9
RedBeanIce OP @lewis89 谢谢大佬的回复,我去看一下您的仓库
|
10
RedBeanIce OP @keshawnvan 谢谢!!!我去看看 PDF,再看看是否有整个实体书
|
11
RedBeanIce OP @ufan0 谢谢您的回复!!!!我去看看!!
|
12
RedBeanIce OP @ufan0 谢谢您的回复!!!!我去看看!!!!
|
13
RedBeanIce OP |
14
RedBeanIce OP @ixx 谢谢大佬的回复,我也去看看您的仓库。
|
15
coer 2020-03-21 02:06:22 +08:00 via Android
可能是我太菜了,看 spring 源码解析那本书看着看着就看晕了,如果看不下去可以去 b 站找相关的视频
|
16
Jooooooooo 2020-03-21 02:12:05 +08:00
直接把 spring 理解成一个管理 bean 的容器, 然后把 bean 的加载过程搞明白就 OK 了
不要投入太多时间放在这种工具上 |
17
yeqizhang 2020-03-21 02:46:18 +08:00 via Android
意义不大,人生苦短,你弄懂了最多锻炼一下你的脑子,面试偶尔会问问,因为面试官百分之九十多都没深究过。现在都是问微服务各种中间件数据库优化之内的,呵呵,我严重怀疑他们也是看 github 上那些大厂的面试题来问的
|
18
yeqizhang 2020-03-21 02:57:22 +08:00 via Android
不过还是可以看看里面的经典设计模式,设计模式实用。
|
19
securityCoding 2020-03-21 10:50:10 +08:00
spring 源码分析这书挺好的 , 学习工具原理你至少得用熟悉它再去了解原理
|
20
aguesuka 2020-03-21 12:17:27 +08:00 via Android
一个轻量级的注入框架不到 500 行,可以自己写一个。大部分项目只用到 spring 很小一部分功能
|
21
tiankongzhe 2020-03-25 11:15:38 +08:00
自己的经验,直接看 springboot 代码,你可以看 spring boot1 版本的,因为 springboot2 部分使用 lambda 可读性差些。看源码一定要 debug,只看是学不到深层的东西的,一定要自己 debug,一定要自己 debug 。有一定熟悉度之后,方式就可以灵活些了。如果需要可以详细聊下
|
22
jeesk 2022-04-17 23:53:40 +08:00 via Android 2
我以前关注过一个公众号, 说是要读就从 spring 0.9 开始读, 当时我觉得他是垃圾。 两年后过去了,我觉得他很牛,现在才知道别人是在 oracle 和 ibm 呆过的大神。 因为 spring 就是 管理和创建 bean ,依赖注入 解决依赖循环, 其它的无非是 spring 的拓展。 我第一个框架阅读是的 google juice 的源码,第一个版本只有 20 个类, 我 debug 了一天才看懂基本原理。 又用了一天,看看懂了设计模式, 现在想想要是大牛早点说服我,我至少进步好几年。spring 无非也是这样, 第一个版本的 beanfactory 现在还在用, 所以你把 spring 0.9 的源码读了, 再去循序渐进的看 spring 5.0 的源码就简单多了。 因为原理你在 0.9 就知道了,其它的无非就是拓展。
|
23
jeesk 2022-04-18 00:24:33 +08:00 via Android
如果你真的要看源码直接上 spring 1.0 ,1.0 版本提供了测试用例。 不过编译用的 ant , 自己填坑要花点时间, 还要下载 jdk1.4 ,自己处理一下编译问题,2 个月后你对 spring 的认识超越同一工作年龄 99%的同事了。 吊打面试官 根本不是问题。
|
24
RedBeanIce OP @jeesk 1.0 以及 ant 果然是麻烦啊,,ant 玩不转。。。
|
25
jeesk 2022-08-01 09:45:17 +08:00
@RedBeanIce 为啥要用 ant ? tomcat 的源码才是 ant .
|
26
RedBeanIce OP @RedBeanIce spring1.0.......
|