美文网首页源码解析
源码解析-Mybatis-项目结构

源码解析-Mybatis-项目结构

作者: 我有一只蛋挞呦 | 来源:发表于2020-10-15 00:12 被阅读0次

    1.整体架构

    1.基础支持层

    2.核心处理层

    3.接口层

    基础支持层

    为核心处理层提供支撑

    反射模块

      提供反射

    类型模块 type

    类型转换 java 和jdbc之间的类型转换

      为sql绑定实际参数时,会将java类型转换为JDBC类型

      映射结果集时,会将数据由JDBC转换成Java类型

    日志模块

    io模块

    资源加载,对类加载器的疯转,确定类加载的使用顺序,并提供了加载类文件以及其他资源文件的功能

    解析器模块parsing

    对xpath进行封装,为mybatis初始化解析mybatis-config.xml配置文件提供支持

      处理动态sql语句的占位符提供支持

    数据源 datesource

    对接第三方数据源

    事务 transaction

    对事务进行了抽象,提供了对应的事务接口

    Mybatis会与Spring框架继承,并又spting框架管理事务

    缓存

    提供了一二级缓存

    都依赖于基础支持层中的缓存模块实现的。

    自带的两集缓存与Mybatis整个应用是运行在一个JVM钟的。共享同一个堆内存

    binding:

    通过类名+方法名的形式去找到对应的SqlSession方法实现

    注解模块 annotation

    异常模块

    核心处理层

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

    配置解析

    builder 配置解析

    mapping 操作sql后进行映射

    会加载mybatis-config.xml配置文件,映射文件,以及Mapper接口中的注解信息,解析后悔保存在configuration对象中

    sql解析

    scrpting模块

    解析动态节点,形成数据库可执行的sql语句,之后再处理占位符,绑定用户传入的实参

    sql执行

    executor 执行器

    cursor 结果的游标

    重要组件

    Executor 负责维护一二级缓存.并提供食物管理的相关操作,并委托给StatementHandler完成

    StatementHandler 通过ParameterHandler完成sql语句的实参绑定,然后通过java.sql.statement执行sql语句并得到结果集

    ResultHandler完成对结果集的映射,得到结果对象并返回

    插件层

    plugin 模块

    对Mybatis进行扩展

    接口层 

    session模块

    核心sqlSession接口,定义了暴露给应用程序调用的Api.

    接收到请求会调用核心处理层的相应模块来完成操作

    其他层

    jdbc模块

    lang模块

    lang

    相关文章

      网友评论

        本文标题:源码解析-Mybatis-项目结构

        本文链接:https://www.haomeiwen.com/subject/bragpktx.html