zoukankan      html  css  js  c++  java
  • 精尽MyBatis源码分析

    该系列文档是本人在学习 Mybatis 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释(Mybatis源码分析 GitHub 地址Mybatis-Spring 源码分析 GitHub 地址Spring-Boot-Starter 源码分析 GitHub 地址)进行阅读

    MyBatis 版本:3.5.2

    MyBatis-Spring 版本:2.0.3

    MyBatis-Spring-Boot-Starter 版本:2.1.4

    该系列其他文档请查看:《精尽 MyBatis 源码分析 - 文章导读》

    整体架构

    本文主要分享 MyBatis 项目的一个整体情况,对 MyBatis 有个整体的了解,可以去 MyBatis GitHub 上面 Fork 到你自己的 GitHub 上面,然后拉取到自己本地

    项目结构

    MyBatis-Structure

    根据包名差不多就可以知道每个模块的作用

    整体架构

    MyBatis 的整体架构分为三层:基础支持层核心处理层接口层

    Structure

    按照 MyBatis 这个架构图从下往上对其进行逐步分析,笔者是根据芋道源码《精尽 MyBatis 源码分析》一系列文档学习 MyBatis 的,非常感谢~

    基础支持层

    基础支持层,包含整个 MyBatis 的基础模块,这些模块为核心处理层的功能提供了良好的支撑

    1. 解析器模块:解析文件,处理占位符
    2. 反射模块:对 Java 原生的反射进行良好的封装,进行了一系列的优化,提供更加简洁易用的 API 方便使用
    3. 异常模块:定义 MyBatis 自己的 Exception
    4. 数据源模块:提供相应的 DataSource 数据源实现,支持与第三方数据源的继承
    5. 事务模块:对数据库中的事务进行了抽象,提供事务接口的简单实现
    6. 缓存模块:提供一级缓存和二级缓存的支持
    7. 类型模块:提供别名机制,JDBC Type 和 Java Type 之间的转换
    8. IO模块:提供资源加载功能
    9. 日志模块:提供日志输出,支持集成第三方日志框架
    10. 注解模块:提供相关注解
    11. Binding模块:提供 Mapper 接口与 XML 映射文件进行关联的支持

    核心处理层

    核心处理层,实现了 MyBatis 的核心处理流程,包括 MyBatis 的初始化以及完成一次数据库操作的涉及的全部流程

    接口层

    接口层,核心为 SqlSession 接口,该接口定义了 MyBatis 暴露给应用程序调用的 API,也就是上层应用与 MyBatis 交互的桥梁。接口层在接收到调用请求时,会调用核心处理层的相应模块来完成具体的数据库操作

    总结

    总的来说,MyBatis 的代码不多,比较简单易懂,按照上面三个模块(基础支持层 => 核心处理层 => 接口层)逐步进行分析,后续会提供一系列的文档,包含 MyBatis 与 Spring 和 Spring Boot 集成的源码解析,请熟读 MyBatis 官方文档

    参考文章:芋道源码《精尽 MyBatis 源码分析》

  • 相关阅读:
    1
    前端必读书籍推荐
    cn
    网站爬虫优化
    es学习
    适应移动端
    chrome禁止缓存,每次都最新的
    vue 源码环境
    [Java] 设计模式之工厂系列 04 (自定义模拟 spring 读取xml文件 beanFactory)
    [Java] JDOM 读取 xml 文件 示例程序初步
  • 原文地址:https://www.cnblogs.com/lifullmoon/p/14014901.html
Copyright © 2011-2022 走看看