有个朋友在知识星球上向我提问。
我的建议是从Spring的源代码入手。至少我自己也是这么做的,毕竟Spring里有大量的设计模式和OO编程的最佳实践。我之前在SAP使用SAP自己的开发语言ABAP进行日常工作,后来因为工作原因也需要用Java开发。虽然SAP之前大多数产品都是基于ABAP开发的,但是现在公司在向云转型,越来越多的云产品是基于Java Spring来开发了。我觉得Spring 5年之内都不会过时,值得程序员花力气去钻研。
请阅读知乎问题: 学习spring源码的意义是什么呢?
然后怎么去学Spring呢?如果一头扎进Spring的代码海洋,肯定就直接淹死了。
我的两个方法:
1. 边看书边看源代码。
我看的是这本书,边看书,边自己写读书笔记。
如果发现自己提笔却表达不清楚某个知识点,说明这个知识点自己其实还未真正理解,那么再回过头去看书。
下面是我写过的一些读书笔记:
Manage your test case with @SuiteClasses
How does @Autowired work in Spring framework
Run only given sets of your unit test via @Category
Use @Rule to define custom rules for your test method
How does annotation @Cacheable work
A simulation of Java Spring dependency injection annotation @Inject in ABAP
2. 边看源代码边自己写代码,调试代码
自己用Spring搭一个Hello World的应用,然后一点点往上添东西。可以参考我的这个Github Repository里的commit记录看我是如何添加新的功能的。
不断写代码,调试代码,把自己学到的新东西写出来。
为什么要写出来呢?
在我的微信公众号文章SAP成都研究院35岁以上的开发人员都去哪儿了?里提到,科学研究表明,在实战中学习,教别人,是最有效的学习方法。