此问必是有心人,有心人必有心答。

——题记

当我看到这个问题的时候,不禁心里一问,为何要阅读spring源码?

在我们的生活之中,有形形色色的万物(Object),有飞机,有汽车,有轮船,还有我这个沧海一粟的java讲师。

试问:了解飞机底层架构的人,就一定能把飞机开好吗?精通汽车的构造和底层原理的人,就保证开车不出事故吗?或者反过来问,一个多年的开出租车的老司机,技术非常娴熟,但是你问他汽车的架构和底层原理,你觉得有多少老司机能准确的答出来?

那就对了,了解了,读懂了spring底层源码的程序员,我们并不能保证他就是一个好程序员,我心中的一个好的程序员是要能够提出解决方案的程序员,就好比清华北大确实只是个过程,最后的目的,是为国家为人民做出奉献才是我们活着的价值。所以说我并不看好去阅读spring源码这个行为。闻道有先后,术业有专攻,我们不是提供底层技术的人!绝大多数的程序员,我以为正确的做法是站在巨人的肩膀上,把前辈留下来的精髓发扬光大才是正道,简而言之,把怎么用,和为什么要这么用学好才是大多数程序员学习技术的关键。就好比去学驾照的时候,教练只需要关心你是否会开车,是否遵守交通规则,并不关心你是否了解汽车是如何在路上跑起来的。

一个人的精力和时间都是有限的,分细了来说,开发者就是技术的使用者,重点在于如何正确熟练的使用,而不是一昧地去关心底层原理,如果要完全读懂spring源码,首先,英语就得很厉害吧,其次,得花多少时间?就算读懂了,那收获和付出也不成正比,大把大把的时间为何不花在java更多,更高级,更有意义的技术上呢?笔者此话并不是说spring源码读了没用,只是让我们的时间更有价值,例如分布式微服务,区块链技术,大数据,python,作为新时代的IT佼佼者,我们是否应该随着时代的脚步,迎接崭新的未来?我奉劝大多数人,不必去看spring源码,除非你确实感兴趣作为技术研究,这样是可以的。一个正常的工作者,是不建议花宝贵的时间去看的,那学生就更不应该去看了。此话怎讲?我以为,学生应以学业为重,士不可不弘毅,任重而道远,首先应该扩展其知识的广度,和技术的娴熟使用,再培养学生独立解决问题的能力,沟通协作的能力,最后才考虑技术的深度。

笔者在多年前也被面试过很多很多问题,但是从来没有一个面试官会问spring底层源码,曾经阿里巴巴的架构师也面试过我,直到后来,我成为了面试官,当我去面试别人的时候,我也不会去问spring源码这些东西,因为99.9%企业招人进来,是要做事实的,不是让你去研究一个技术,绝大多数更在乎的是利用现有的技术,去完成一些项目功能。除了世界上极少数著名的企业他们需要技术研究员,才对这些有所要求,那要招这类人才,估计至少也是名校研究生以上吧,所以普通程序开发者,我觉得学好技术的正确与熟练使用,才是重中之重!

不宜本末倒置,不宜好高骛远。笔者从事Java行业以来,真要说全阶段全程全栈都精通的人,应属风毛菱角,故此,更应让所学知识运筹帷幄,举一反三,千里炉火,万里纯青。以上篇幅在说我对阅读spring源码的一些强烈建议,最终结论,是不看、不读就此作罢。

那有的感兴趣的人非要阅读呢?

Ok,其实阅读spring源码并不算很难。

首先,应该去官网http://spring.io阅读写spring框架的理念,就好比读一本书,要阅读这本书的纲要,要明白为什么要设计spring架构。

然后,应该分模块阅读,先从核心模块开始阅读:如:

IoC Container, Events, Resources, i18n, Validation, Data Binding, Type Conversion, SpEL, AOP.

那么在阅读的时候,英文能力差的话,可以使用翻译软件翻译成中文阅读,毕竟不是每个程序员英语都很棒,毕竟中国人看中国字更容易去理解。当然,有些翻译过来的并不准确,这个时候可以利用百度,去查看那段不理解的地方。

然后,把spring的jar包下载下来,利用IDEA打开,可以使用download资源,会发现,每个方法上面都会有详细的英文注释。一边看官方的说明,一边查看代码的编写,不难发现,非常多的代码写得很精辟,所以十分考验一个程序员的java基本功,特别是反射,JDK\CGLIB代理,和java常用的设计模式等。

我想的话,能把spring源码英文全部看完的人,英语一定很好。光是AOP这个模块,就好几百甚至上千个接口和类,想把所有spring源码看完,兄弟,省省吧~,那是多少前辈奋斗多久的心血,晚辈只敢用得很6,而不敢亵渎(“读”)。

偶尔也会有同学问我,问我现在企业到底需要那种技术,和哪种人才,我的回答是出自千锋教育的具有实战项目经验的程序员,好在与企业无缝连接。

面试有没有看过spring源码_怎么阅读Spring源码?相关推荐

  1. 羊了个羊游戏网站源码_带前后端源码,带教程

    羊了个羊游戏源码_带前后端源码_及配置教程说明 这是啥游戏?据悉,这是一款卡通背景的消除闯关游戏.玩家们需要点击上方卡牌,被选中的卡牌会下移到底部的木框中,框内最多可以储存7张卡牌,当有3张相同的卡牌 ...

  2. 虚拟商品帐号交易平台源码_支持个人二维码收款

    精仿淘手游马上有号账号交易平台源码支持个人二维码收款,安装非常简单,支持个人二维码收款,可以运营精仿马上有号账号交易平台源码 支持个人二维码收款 安装教程: PHP版本一定要选择5.2 1.先修改配置 ...

  3. idea 关联jdk源码_idea搭建阅读jdk源码教程(详细版)

    最近正在阅读jdk源码,首先在搭建阅读jdk源码过程中遇到了一些问题,在此分享一下自己的经验,以供大家参考. 1.阅读jdk源码之前要先获得jdk的源码,大家可以在网上下载到jdk源码,在此我提供另外 ...

  4. spring 循环依赖_简单说说 Spring 的循环依赖

    作者 | 田伟然 回首向来萧瑟处,归去,也无风雨也无晴. 杏仁工程师,关注编码和诗词. 前言 本文最耗时间的点就在于想一个好的标题, 既要灿烂夺目,又要光华内敛,事实证明这比砍需求还要难! 由于对象之 ...

  5. python 字节码_简单入门python字节码混淆

    前言 我就是小菜鸡本鸡了,不是很会写东西,请各位大佬多多见谅.本文基于python2.7,因为python3并不是很懂. python文件如果要发布的话,有时候还是难免想保护一下自己的源码,有些人就直 ...

  6. java中字节码_聊聊Java的字节码

    本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 巴山楚水凄凉地,二十三年弃置身. 怀旧空吟闻笛赋,到乡翻似烂柯人. 沉舟侧畔千帆过,病树前头万 ...

  7. 微信创建二维码_如何创建二维码

    微信创建二维码 QR codes aren't everyone's cup of tea but I quite like them. If I see something I want to re ...

  8. java你画我猜源码_为什么看到Mybatis源码就感到烦躁?

    背景 最近,听到很多吐槽:看到源码,心中就感到十分纠结.特别烦恼. 为什么纠结? 因为面试的时候,面试官很喜欢问:你看过什么框架源码?JDK源码也行. 这时候,如果回答没有看过,虽然没让你立马回去等通 ...

  9. 如何阅读python源码_如何阅读源代码(转)

    众所周知,要想写出好的程序,除了要经常写之外,还有看看别人是怎么写的,所以读别人的程序是非常重要的:如今是个信息交换十分发达的时代,你可以轻易的就看到顶尖级选手的代码:开源事业蒸蒸日上,确实是所有程序 ...

最新文章

  1. 用户、组的管理常用到的命令介绍
  2. Java修饰符:public,protected,private,不加修饰符的区别
  3. java 先进先出的map_「 深入浅出 」java集合Collection和Map
  4. javaWeb服务详解(含源代码,测试通过,注释) ——Dept的Service层
  5. jquery $.each遍历json数组方法
  6. 大道至简读书笔记(1)
  7. xposed android id修改,Xposed模块开发:修改设备IMEI
  8. Wap模拟器,用电脑浏览器浏览手机wap网站
  9. AMP Roadshow技术分享路演中国专场报名开始了!
  10. PS-fourday-套索工具组(抠图强化)
  11. 治疗 | 如何识别和处理消极想法
  12. CSS通过blur实现高斯模糊
  13. [转载] 晓说——第19期:千年科举那些事——官场
  14. Centos下启动和关闭MySQL
  15. 国A级和国AA级代表什么意思呢?2022年护眼灯选国A还是国AA好
  16. uni.getLocation获取位置失败
  17. Java集成环信即时通讯(SpringBoot)
  18. Non-zero exit code解决方法
  19. 金蝶K3采购不良退货案例教程
  20. 打印机安装(驱动+安装)

热门文章

  1. WiFi吞吐量测试工具iperf的使用
  2. 公关会展公司:OA软件如何选型?
  3. APB信号说明及波形示例
  4. 记一次kafka线上事故
  5. Electron给index.html添加桌面APP外壳
  6. Nginx的IO模型详解
  7. C# (初入江湖)-猫狗大战(面向对象的三大特征)
  8. 苹果手机/小米8拍照上传图片旋转的问题
  9. XMind思维导图合并
  10. python 代理ip