大家好,我是田哥
最近,有朋友和我聊,如何看源码,不知道怎么看,自己看过Spring源码,可是看到后面就被劝退了,觉得太难了。
其实,我们要明确为什么要看源码?再者就是看源码需要哪些前提条件,咱们不可能一上手就开始看源码,那就是自讨苦吃。
我给这位朋友的建议是:先尝试着看一些Java 集合类的源码,然后可以尝试看
MyBatis
的源码,但是看源码之前,一定要用的很熟练,并且在看MyBatis
、Spring
等框架源码之前,自己还得学点设计模式。
我们在面试中,面试官很喜欢看到你的简历上对某某源码有深入的学习、研究
,再者说,面试过程中也会有意无意地问到源码层面的问题。
面试官:你有看过什么源码吗? me:额 (⊙o⊙)…
好吧,我们先来几个MyBatis
的面试题:
MyBatis
中有哪些动态标签?这个比较简单,但是照样很多人回答不上来。MyBatis
中,我们的Mapper接口的方法,为什么就可以调用接口的方法?你会说,他底层使用了动态代理,如果没有看过源码的话,那这个代理是代理的是谁?静态代理又是什么?动态代理有哪些?MyBatis
中一级缓存和二级缓存是什么?他们有什么关系?你在项目中用过吗?MyBatis
中分页插件是怎么实现的?拦截器的原理是什么?MyBatis
中用了哪些设计模式?肯定不是就说说设计模式的名字而已MyBatis
中的延迟加载是如何做到的?如果,你都能回答上来,那恭喜你,你已经真的掌握了MyBatis
,否则,还是乖乖地学习吧。
说了一堆MyBatis
相关问面试题,我们还是回到正题。
大家也看过我之前写过MyBatis
源码分析的一些文章,最近,我对这方面又做了一些优化。
老古董系列: