美文网首页源码解析
源码解析-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