该系列文档是本人在学习 Mybatis 的源码过程当中总结下来的,可能对读者不太友好,请结合个人源码注释(Mybatis源码分析 GitHub 地址、Mybatis-Spring 源码分析 GitHub 地址、Spring-Boot-Starter 源码分析 GitHub 地址)进行阅读html
MyBatis 版本:3.5.2git
MyBatis-Spring 版本:2.0.3github
MyBatis-Spring-Boot-Starter 版本:2.1.4spring
本文主要分享 MyBatis 项目的一个总体状况,对 MyBatis 有个总体的了解,能够去 MyBatis GitHub 上面 Fork 到你本身的 GitHub 上面,而后拉取到本身本地数据库
根据包名差很少就能够知道每一个模块的做用缓存
MyBatis 的总体架构分为三层:基础支持层、核心处理层和接口层mybatis
按照 MyBatis 这个架构图从下往上对其进行逐步分析,笔者是根据芋道源码《精尽 MyBatis 源码分析》一系列文档学习 MyBatis 的,很是感谢~架构
基础支持层,包含整个 MyBatis 的基础模块,这些模块为核心处理层的功能提供了良好的支撑app
核心处理层,实现了 MyBatis 的核心处理流程,包括 MyBatis 的初始化以及完成一次数据库操做的涉及的所有流程框架
接口层,核心为 SqlSession 接口,该接口定义了 MyBatis 暴露给应用程序调用的 API,也就是上层应用与 MyBatis 交互的桥梁。接口层在接收到调用请求时,会调用核心处理层的相应模块来完成具体的数据库操做
总的来讲,MyBatis 的代码很少,比较简单易懂,按照上面三个模块(基础支持层 => 核心处理层 => 接口层)逐步进行分析,后续会提供一系列的文档,包含 MyBatis 与 Spring 和 Spring Boot 集成的源码解析,请熟读 MyBatis 官方文档
参考文章:芋道源码《精尽 MyBatis 源码分析》