1oNflow
V2EX  ›  Java

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

  •  
  •   1oNflow · Sep 30, 2020 via iPhone · 9597 views
    This topic created in 2224 days ago, the information mentioned may be changed or developed.
    40 replies  •  2020-10-01 19:11:09 +08:00
    tctc4869
    tctc4869
    Sep 30, 2020
    1
    你目前需要学习 Spring 源码么?为什么需要?谁告诉你必须要学 Spring 源码的?不学有什么问题么?

    Spring 只是个工具
    lewis89
    lewis89
    Sep 30, 2020
    2
    看看 spring-context spring-core spring-aop spring-tx 就行了
    huifer
    huifer
    Sep 30, 2020
    3
    想看就看多学肯定没问题 (其实只是想推广一下 https://www.yuque.com/huifer/spring)
    chendy
    chendy
    Sep 30, 2020
    4
    可能有必要通读 spring 的文档
    reeco
    reeco
    Sep 30, 2020 via Android
    5
    没必要
    xianyuya
    xianyuya
    Sep 30, 2020
    6
    完全没有任何必要
    Ho1iday
    Ho1iday
    Sep 30, 2020
    7
    没有必要看源码,知道并理解原理就行了
    lewis89
    lewis89
    Sep 30, 2020❤️1
    8
    @xianyuya #6
    @reeco #5
    老哥 还是别误人子弟的好,Java 这块 Spring 绕不过去的,你要进一步做组件开发,对 Spring 内部源码多多少少了解一点不会有害处的,除非你只想写业务代码
    wysnylc
    wysnylc
    Sep 30, 2020
    9
    记住看源码是学习效率最低的方式,要看就看其他人的博客讲解
    lewis89
    lewis89
    Sep 30, 2020
    10
    如果你想为 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
    Nuttertoo1s
    Sep 30, 2020
    11
    一开始我觉得没必要,直接去学 spring boot,发现还是需要学习一下 spring 方便辅助了解 spring boot 。
    sagaxu
    sagaxu
    Sep 30, 2020 via Android
    12
    个人觉得啃 spring 源码一点用都没有,但是准备面试的话不妨看看
    gaocc
    gaocc
    Sep 30, 2020
    13
    刻意去看,个人感觉也是今天看,明天忘。最好是开发都时候,有意识的去瞅瞅,源码怎么走的,留个印象就好。真遇到问题,方便入手
    frankkai
    frankkai
    Sep 30, 2020
    14
    老板不关系你会不会源码 关心你能不能交付功能。
    x940727
    x940727
    Sep 30, 2020
    15
    @lewis89 讲道理,Spring 是工具,看源码也是为了学会怎么在实际开发中使用设计模式,至于现在大部分人所谓的看源码,都是为了看而看,说白了就是拿来面试。
    lewis89
    lewis89
    Sep 30, 2020
    16
    @x940727 #15 看做什么吧,如果你只是 写 CRUD 的,说实话真没必要去看源码,我平时工作也用不上,但是你真要做一些组件开发,了解怎么减少代码编写,或者做一些中间件去 支撑业务 监控性能 或者资源权限的东西,不懂框架原理没阅读过源码 真的不行。
    lewis89
    lewis89
    Sep 30, 2020
    17
    @x940727 #15 因为 Java 本身动态性并不够,像 Python 其实语言自带了很多魔改功能,可以直接自己修改自己,可以在运行时做很多东西 来减少手工重复代码编写,但是 Java 这块 对代码增强 或者具体点说是 AOP 相关的技术 都是通过 Spring 来实现的,你如果没有 Spring 想自己完成一套 切面简易的鉴权系统 十分困难,除非你每个 Java 调用的方法都手工去复制一遍代码,不然最终还是绕不开 AspectJ CgLib Javassit Spring 这些技术。
    wangkun025
    wangkun025
    Sep 30, 2020
    18
    我觉得没必要。
    git00ll
    git00ll
    Sep 30, 2020
    19
    普通新人后端有没有必要学习 Spring 源码?
    -----------------------------------------------------
    新人没必要,毕竟把 spring 全家桶的用法学会也要很长时间,
    一两年后肯定是要看的,不看 spring 也要看其他的框架的,目的是提高读源码能力。
    Aethyr
    Aethyr
    Sep 30, 2020❤️1
    20
    非常又必要
    首先,Spring 中有很多优秀得设计,多学习有好处。其次,Spring 甚至已经成为事实上的标准,了解 Spring 本身的设计可以帮助你减少很多不必要的操作、以及避免很多会恶心同事的操作。
    misaka19000
    misaka19000
    Sep 30, 2020
    21
    没必要
    mtmax
    mtmax
    Sep 30, 2020
    22
    没必要 说必要的先想想你 jdk 源码看多少了 哪个重要不用我多说了吧
    IGJacklove
    IGJacklove
    Sep 30, 2020 via Android
    23
    @egoistttt 不看怎么了解?看源码才是了解原理最好最有用的方法,像那些看别人博客总结的很多都是半桶水,知其然不知所以然,稍微问的深一点就都答不上来了。
    anguiao
    anguiao
    Oct 1, 2020 via Android
    24
    很多人连文档都没仔细看,就跑去看源码(不特指 Spring )。然后各种“手撕源码”的水文,也是层出不穷。
    其实很多人并不真的需要看源码,只是为了面试的时候能吹上几句。谁让现在的面试都喜欢问有没有看过源码呢?
    amiwrong123
    amiwrong123
    Oct 1, 2020 via Android
    25
    借楼问下各位,为了面试的话,spring 的源码应该重点了解那些方面?比如 ioc 的依赖注入,aop 如何切面。
    或者说,应该带着哪些问题(可能是面试会问到的问题)去看源码?
    ycbb123
    ycbb123
    Oct 1, 2020
    26
    很多人文档都没看过
    yiyi11
    yiyi11
    Oct 1, 2020 via Android
    27
    所谓 java 框架,无非就是 反射 + 正则 + 设计模式,spring 亦如此,你可以先从这些知识点入手。

    至于源码,你直接看肯定一头雾水,因为代码版本到今天已经非常庞大,要有目的性去看(比如看一些源码分析的教程),取其核心。
    yanguango
    yanguango
    Oct 1, 2020 via Android
    28
    厚着脸皮提一下,有个工具帮助你阅读源码。https://wonder.codes
    sunwei0325
    sunwei0325
    Oct 1, 2020
    29
    你就想象, 开车是不是也要研究明白发动机原理
    Cyron
    Cyron
    Oct 1, 2020 via iPhone
    30
    黑盒就先用,用熟练了再慢慢深入
    qwzhang01
    qwzhang01
    Oct 1, 2020
    31
    有一定必要,面试非常有必要,后期自己开发中遇到坑填坑帮助也非常大。但是不能死磕,看文档,看比较好的博客,理解设计模式,然后找一个细小的点,debug 进去慢慢看,做的时间久了,自然久明白了。
    qwzhang01
    qwzhang01
    Oct 1, 2020
    32
    @sunwei0325 这样理解好像也不准确,造车的工程师和司机的技能树差别有多大,用 Spring 写项目的和写了 Spring 的程序员技能树差别呢!!!
    inwar
    inwar
    Oct 1, 2020 via Android
    33
    Spring mvc 要看,spring 可以了解一点,不然遇到问题就捉瞎
    bojue
    bojue
    Oct 1, 2020 via iPhone
    34
    @lewis89 ✓
    br00k
    br00k
    Oct 1, 2020 via iPhone
    35
    可以先把使用文档看了,实践了。再深入的时候可以从源码学习。
    aguesuka
    aguesuka
    Oct 1, 2020 via Android
    36
    如果你能熟练使用 spring,对软件设计有一定见解,能实现一个乞丐版的 inject 和 mvc 框架,不妨一试
    Zchary
    Zchary
    Oct 1, 2020 via iPhone
    37
    我想问新人后端有必要学 Java 吗?(前端转的
    notejava
    notejava
    Oct 1, 2020
    38
    没必要刻意去看,带着开发中遇到的问题去阅读源码就可以了。
    lionseun
    lionseun
    Oct 1, 2020 via Android
    39
    源码论者占据了高薪行业,10K 工资不需要,其他看情况
    clf
    clf
    Oct 1, 2020
    40
    更多的是了解框架的思想吧,比如 AOP 和 IOC 。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5619 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 117ms · UTC 03:01 · PVG 11:01 · LAX 19:01 · JFK 22:01
    ♥ Do have faith in what you're doing.