Mybatis 源码 - 整体架构
本文仅做记录,学习请访问《MyBatis 源码分析 - 整体架构》
源码结构
架构图
基础支持层
基础支持层,包含整个 MyBatis 的基础模块,这些模块为核心处理层的功能提供了良好的支撑
- 解析器模块:解析文件,处理占位符
- 反射模块:对 Java 原生的反射进行良好的封装,进行了一系列的优化,提供更加简洁易用的 API 方便使用
- 异常模块:定义 MyBatis 自己的 Exception
- 数据源模块:提供相应的 DataSource 数据源实现,支持与第三方数据源的继承
- 事务模块:对数据库中的事务进行了抽象,提供事务接口的简单实现
- 缓存模块:提供一级缓存和二级缓存的支持
- 类型模块:提供别名机制,JDBC Type 和 Java Type 之间的转换
- IO模块:提供资源加载功能
- 日志模块:提供日志输出,支持集成第三方日志框架
- 注解模块:提供相关注解
- Binding模块:提供 Mapper 接口与 XML 映射文件进行关联的支持
核心处理层
核心处理层,实现了 MyBatis 的核心处理流程,包括 MyBatis 的初始化以及完成一次数据库操作的涉及的全部流程
接口层
接口层,核心为 SqlSession 接口,该接口定义了 MyBatis 暴露给应用程序调用的 API,也就是上层应用与 MyBatis 交互的桥梁。接口层在接收到调用请求时,会调用核心处理层的相应模块来完成具体的数据库操作