MyBatis 源码学习 | Day 4 | 了解MyBatis源码

在前几天的学习中,我们通过一个 MyBatis 操作数据库的 Demo,了解了 MyBatis 的整体运行流程,接下来我们将深入到 MyBatis 源码的各个包和类进行源码阅读,今天将先对各个包从功能上进行归类划分,方便我们后续的阅读学习。

MyBatis 包结构

我下载学习的是目前最新版本 MyBatis-3.5.16 的源代码,可以在 GitHub 进行下载:https://github.com/mybatis/mybatis-3/archive/refs/tags/mybatis-3.5.16.zip
下载完成后,可以打开 MyBatis 项目,看到该项目的所有包,共 21 个,如下图所示
MyBatis 包结构

包功能划分

在前面的学习中,我们知道,MyBatis 对数据库进行操作包含了解析配置并初始化和数据读写两个阶段,因此可以把这些包划分为配置解析包和数据操作包,还有一部分包是为这两个包提供了一些基本功能的工具包,比如在 util 包里,为 MyBatis 缓存实现提供了一个 MapUtil 类,通过自定义的 computeIfAbsent 方法来避免 JDK8 及之前版本中出现的 JDK-8161372 线程阻塞问题。
在查找资料后,我找到的具体的划分如下所示:

  • 工具包:
    • -exceptions
    • reflection
    • annotations
    • lang
    • type
    • io
    • logging
    • parsing
    • util
  • 配置解析包:
    • binding
    • builder
    • mapping
    • scripting
    • datasource
  • 数据操作包:
    • -jdbc
    • cache
    • transaction
    • cursor
    • executor
    • session
    • plugin

在这些包里,对其他部分的依赖程度从低到高依次排序应该就是工具包 -> 配置解析包 -> 数据操作包,因此接下来的学习我也会按照这个顺序依次阅读源码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值