代码的拆分
整个Mybatis源码大概被分为三个部分:
- 基础技术支持代码(日志、异常、等辅助类代码)
- 业务代码(配置的解析,SQL的执行等)
- 扩展类代码(插件接口的代码)
目前基础类代码的范围是:
注解类(annotations包);绑定模块类(binding包);配置解析(builder包);
缓存(cache包);数据源(datasource包);异常(exceptions包);
JDBC(jdbc包);日志(logging包);IO(IO包);
反射(reflection包);事务(transaction包);类型转换(type包);
业务代码范围是
SQL执行(cursor,executor),配置解析(mapping),解析器(parsing),SQL解析(scription),
session;
扩展类范围是
插件(plugin)
源代码整理的安排
后续对代码学习整理大概被划分为如下
- 基础支持逻辑 (已完成)
- 核心业务逻辑(已完成)
- 资源的加载(未完成,后续根据整理进度,可能会拆分的更加细)
- SQL的解析
- SQL的执行
- 拓展逻辑(已完成)
- 一些补充的知识 (也是一个开放性的章节,可能在后续再次读到mybatis的代码会有新的感悟)(补充中...)
- 延迟加载
目前阅读的版本号是 3.5.1-SNAPSHOT
ps.之所以叫做简读,一方面是自己觉得目前还没有实力真正完全读懂代码中的逻辑。第二个也是提醒自己,代码和书一样常读常新,这些代码还是要回头经常阅读。
目前我学习中添加了注解笔记的项目地址在:
https://gitee.com/daifylearn/mybatis-3