源码分析:小菜鸟的硬菜
大家好,我是田哥
最近,有朋友和我聊,如何看源码,不知道怎么看,自己看过Spring源码,可是看到后面就被劝退了,觉得太难了。
其实,我们要明确为什么要看源码?再者就是看源码需要哪些前提条件,咱们不可能一上手就开始看源码,那就是自讨苦吃。
我给这位朋友的建议是:先尝试着看一些Java 集合类的源码,然后可以尝试看
MyBatis
的源码,但是看源码之前,一定要用的很熟练,并且在看MyBatis
、Spring
等框架源码之前,自己还得学点设计模式。
我们在面试中,面试官很喜欢看到你的简历上对某某源码有深入的学习、研究
,再者说,面试过程中也会有意无意地问到源码层面的问题。
面试官:你有看过什么源码吗?
me:额 (⊙o⊙)…
好吧,我们先来几个MyBatis
的面试题:
-
MyBatis
中有哪些动态标签?这个比较简单,但是照样很多人回答不上来。 -
MyBatis
中,我们的Mapper接口的方法,为什么就可以调用接口的方法?你会说,他底层使用了动态代理,如果没有看过源码的话,那这个代理是代理的是谁?静态代理又是什么?动态代理有哪些? -
MyBatis
中一级缓存和二级缓存是什么?他们有什么关系?你在项目中用过吗? -
MyBatis
中分页插件是怎么实现的?拦截器的原理是什么? -
MyBatis
中用了哪些设计模式?肯定不是就说说设计模式的名字而已 -
MyBatis
中的延迟加载是如何做到的? -
.....
如果,你都能回答上来,那恭喜你,你已经真的掌握了MyBatis
,否则,还是乖乖地学习吧。
说了一堆MyBatis
相关问面试题,我们还是回到正题。
大家也看过我之前写过MyBatis
源码分析的一些文章,最近,我对这方面又做了一些优化。
老古董系列:
贴了一部分MyBatis相关文章,接下来,我们来看看
《MyBatis
源码分析:小白系列》目录如下:
开篇词:研读 MyBatis
源码,学到的不只是源码
模块一 快速掌握MyBatis
的基本使用
第01讲:重温 JDBC
第02讲:快速入门 MyBatis
第03讲:快速MyBatis
实现原理
第04讲:轻松掌握 MyBatis
动态标签
第05讲:掌握 MyBatis
两种使用方式(xml
与注解)
第06讲:掌握 MyBatis
延迟加载
第07讲:掌握 MyBatis
中的流式查询
模块二 高阶应用
第08讲:巧用MyBatis
中的缓存
第09讲:快速集成Spring Boot+ MyBatis
第10讲:教你如何使用分页插件
第11讲:掌握自定义插件及插件原理
第12讲:常见的异常分析
第13讲:如何逆向生成代码
模块三 设计模式
第14讲:模板方法模式
第15讲:代理模式
第16讲:装饰器模式
第17讲:工厂模式
第18讲:责任链模式
第19讲:建造者模式
模块四 源码分析
第20讲:MyBatis
中 XML 文件是如何解析的?
第21讲:Mapper 接口的方法为什么能调用?
第22讲:Mapper 中的方法能不能重载?
第23讲:MyBatis
中的结果如何映射?
第24讲:MyBatis
中的缓存如何实现?
第25讲:MyBatis
中的插件如何实现?
第26讲:MyBatis
中的类型转换器如何实现?
第27讲:MyBatis
源码分析总结
第28讲:如何手写持久化框架
第29讲: MyBatis
高阶面试题和答案
学技术也得一步一步来的,先学基本的,然后再学相关原理,接着再学一些设计模式,最后再学源码。
本栏目是从简到难,站在普通程序员的角度来写的,也没有那些书上的讲的那么正式,更多的是希望大家从中学到点东西,而不是云里雾里,感觉学到了有感觉啥也没学的。
《MyBatis
源码分析:小白系列》将会发布在CSDN
专栏里,感兴趣的可以通过下面这个二维码参加学习:
另外,《MyBatis
源码分析:小白系列》(已完成80%了)将以MyBatis源码分析:小白系列.pdf
格式共享到我的知识星球中,希望感兴趣的自行下载。
知识星球内容:。