vlambda博客
学习文章列表

源码分析:小菜鸟的硬菜

大家好,我是田哥

最近,有朋友和我聊,如何看源码,不知道怎么看,自己看过Spring源码,可是看到后面就被劝退了,觉得太难了。

其实,我们要明确为什么要看源码?再者就是看源码需要哪些前提条件,咱们不可能一上手就开始看源码,那就是自讨苦吃。

我给这位朋友的建议是:先尝试着看一些Java 集合类的源码,然后可以尝试看MyBatis的源码,但是看源码之前,一定要用的很熟练,并且在看MyBatisSpring等框架源码之前,自己还得学点设计模式。

我们在面试中,面试官很喜欢看到你的简历上对某某源码有深入的学习、研究,再者说,面试过程中也会有意无意地问到源码层面的问题。

面试官:你有看过什么源码吗?

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格式共享到我的知识星球中,希望感兴趣的自行下载。

知识星球内容:。