Mybatis源码导读
一、架构划分
Mybatis架构可分为三层:接口层、核心处理层、基础支持层。如下图所示:
接口层:开发者与Mybatis的交互入口,开启配置初始化逻辑、构建会话Session等。
核心处理层:各种配置文件初始化详细逻辑、SQL执行逻辑、结果解析等。
基础支持层:缓存定义、公共工具包、事务管理、数据源等。
二、源码阅读主线
首次读源码,最好结合自身的使用经验来看,理清主线,其他的边角功能平时很少用到,了解其功能即可暂时跳过。
1、配置初始化
config文件解析(☆☆☆☆☆)
mapper文件解析(☆☆☆☆☆)
statement配置~SQL节点解析(☆☆☆☆☆)
注解模块(☆☆)
解析器模块(☆☆☆)
反射模块(☆☆☆)
数据源模块(☆)
事务模块(☆)
IO资源加载模块(☆)
Binding模块(☆☆☆☆☆)
2、SQL语句与执行
SQL语句与参数值组装(☆☆☆☆☆)
SQL执行(☆☆☆☆☆)
SQL结果解析(☆☆☆☆☆)
3、其他
插件模块(☆)
Mybatis-plus(☆☆☆)
Mybatis-spring(☆☆☆)
备注:☆越多表示越重要。
以作者自己的角度来看,读源码不一定边边角角都要理解,初次看时先把主线理解清楚才最重要,不然会进入“睡着的境界”~