曾经遇到的问题
曾经无数次想来读读spring的源码,虽然现在已经很多人用spring boot,但是依然是以spring为基础。总觉得Java程序员不读spring源码就不能称之为Java程序员,我一直认为自己还是个菜鸟,迟迟不敢拿spring试锋芒,好几次都把spring的源码下载下来了,但是看着这繁多的源码,不知从何看起,望山而止步,里面有大量运用设计模式的代码,看着这个也是接口,那个也是接口,怎么都是到处都是接口,实现的代码在哪里?看到实现的代码,发现怎么就短短的几行,心中是满满的质疑,这么几行真的能做到吗?剩下的就是接口的注释,都是英语解释的,虽然仔细看能看懂,但是总觉得自己心浮气躁,看两眼就不想看了。
厚德 求真 砺学 笃行
这是我母校的校训,虽然在学校时经常吐槽学校,出来工作和同学聚会聊天也经常吐槽学校,但是我吐槽可以,你们外校的不许吐槽。工作以来,每次遇到问题,或者心浮气躁的时候,就会在笔记本上默写这个八个字,在笔记本的第一页也是写的这八个字,虽然常常吐槽学校这样那样的不好,可是在工作中对我帮助最大的还是学校的教育,生活中最美好的日子,还是学校里面的生活。
以这八个字为原则,开始我的spring源码阅读之旅,在此立下flag,每周写一篇阅读总结,不然胖十斤(好毒的誓言啊!!!)。
带着问题阅读
根据之前的经验,我觉得应该立下第一个目标和带着问题去阅读:
第一个目标:spring项目的整体的架构;
第二个目标:spring我最感兴趣的就是它的容器怎么实现的,从它开始看起;
问题:
1.spring既然运用了大量的设计模式,我在工作中也试过设计模式,我比较纠结的是如何规划包,命名方式让大家浅显易懂。(写的时候怕大家不知道这什么设计模式,被吐槽)。
2.容器如何区分来自各个source的bean的,放到容器中,又如何使用的过程,何时销毁。
3.bean之前的相互依赖如何处理。
问题不仅仅是是来自工作,有的也是来自面试的时候,虽然背过面试经,但是这次我想自己去看看,到底是怎么回事。