普通新人后端有没有必要学习 Spring 源码?

2020-09-30 16:15:52 +08:00
 1oNflow
7988 次点击
所在节点    Java
40 条回复
tctc4869
2020-09-30 16:22:20 +08:00
你目前需要学习 Spring 源码么?为什么需要?谁告诉你必须要学 Spring 源码的?不学有什么问题么?

Spring 只是个工具
lewis89
2020-09-30 16:25:18 +08:00
看看 spring-context spring-core spring-aop spring-tx 就行了
huifer
2020-09-30 16:37:14 +08:00
想看就看多学肯定没问题 (其实只是想推广一下 https://www.yuque.com/huifer/spring)
chendy
2020-09-30 16:38:08 +08:00
可能有必要通读 spring 的文档
reeco
2020-09-30 16:57:45 +08:00
没必要
xianyuya
2020-09-30 17:12:09 +08:00
完全没有任何必要
egoistttt
2020-09-30 17:18:30 +08:00
没有必要看源码,知道并理解原理就行了
lewis89
2020-09-30 17:18:35 +08:00
@xianyuya #6
@reeco #5
老哥 还是别误人子弟的好,Java 这块 Spring 绕不过去的,你要进一步做组件开发,对 Spring 内部源码多多少少了解一点不会有害处的,除非你只想写业务代码
wysnylc
2020-09-30 17:20:55 +08:00
记住看源码是学习效率最低的方式,要看就看其他人的博客讲解
lewis89
2020-09-30 17:25:26 +08:00
如果你想为 CRUD 节省时间,或者以后做一些 Spring 组件的开发,
最好通读一下 Spring 几个核心模块的代码并了解其中其中的原理,大部分 Utils 跟 Bean 装配的代码不必须要细读,
因为其中很多拐弯抹角的 Spring 代码是擦了不少 Java 遗留的屁股。

https://github.com/jonwinters/auto-generate-enum-api-parent

我最近开发的一个组件,就因为当时不是很清晰 Spring 的整体流程 没注意细看文档,坑了好长的时间
在 processBeanDefinitions 阶段,spring 容器并未为 bean 做 property 注入的处理,你可以看到我并没有使用
@ConfigurationProperties 包装的 Bean 而是手动注入了 Environment 然后 get 到环境配置的变量
Nuttertoo1s
2020-09-30 17:25:35 +08:00
一开始我觉得没必要,直接去学 spring boot,发现还是需要学习一下 spring 方便辅助了解 spring boot 。
sagaxu
2020-09-30 17:26:13 +08:00
个人觉得啃 spring 源码一点用都没有,但是准备面试的话不妨看看
gaocc
2020-09-30 17:45:37 +08:00
刻意去看,个人感觉也是今天看,明天忘。最好是开发都时候,有意识的去瞅瞅,源码怎么走的,留个印象就好。真遇到问题,方便入手
frankkai
2020-09-30 17:45:43 +08:00
老板不关系你会不会源码 关心你能不能交付功能。
x940727
2020-09-30 17:51:41 +08:00
@lewis89 讲道理,Spring 是工具,看源码也是为了学会怎么在实际开发中使用设计模式,至于现在大部分人所谓的看源码,都是为了看而看,说白了就是拿来面试。
lewis89
2020-09-30 18:00:38 +08:00
@x940727 #15 看做什么吧,如果你只是 写 CRUD 的,说实话真没必要去看源码,我平时工作也用不上,但是你真要做一些组件开发,了解怎么减少代码编写,或者做一些中间件去 支撑业务 监控性能 或者资源权限的东西,不懂框架原理没阅读过源码 真的不行。
lewis89
2020-09-30 18:05:04 +08:00
@x940727 #15 因为 Java 本身动态性并不够,像 Python 其实语言自带了很多魔改功能,可以直接自己修改自己,可以在运行时做很多东西 来减少手工重复代码编写,但是 Java 这块 对代码增强 或者具体点说是 AOP 相关的技术 都是通过 Spring 来实现的,你如果没有 Spring 想自己完成一套 切面简易的鉴权系统 十分困难,除非你每个 Java 调用的方法都手工去复制一遍代码,不然最终还是绕不开 AspectJ CgLib Javassit Spring 这些技术。
wangkun025
2020-09-30 18:12:42 +08:00
我觉得没必要。
git00ll
2020-09-30 18:28:29 +08:00
普通新人后端有没有必要学习 Spring 源码?
-----------------------------------------------------
新人没必要,毕竟把 spring 全家桶的用法学会也要很长时间,
一两年后肯定是要看的,不看 spring 也要看其他的框架的,目的是提高读源码能力。
hcx0
2020-09-30 21:03:10 +08:00
非常又必要
首先,Spring 中有很多优秀得设计,多学习有好处。其次,Spring 甚至已经成为事实上的标准,了解 Spring 本身的设计可以帮助你减少很多不必要的操作、以及避免很多会恶心同事的操作。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/711929

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX