作用
主要类
反射模块
封装JAVA API,易用,进行了缓存优化
类型转换模块
绑定实参及映射查询结果集
日志模块
定位错误,解决瓶颈
资源加载模块
类加载器,确定类加载器使用顺序
解析器模块
Xpath,初始化解析mybatis-confg.xml,映射器。xml,
动态SQL占位符
XPathParser TokenHandler
EntityResolver
事务管理模块
抽象处理
缓存模块
提供一级和二级缓存
绑定模块
自定义Mapper接口与映射语句关联
二、模块分析
2.1解析器模块
顾名思义:提供xml文件的解析。
GenericTokenParser:通用的占位符解析器。
TokenHandler:解析占位符
2.2,反射工具箱
- <李>
反射器:一个反射器对应一个类,缓存了反射需要类的元信息。
ReflectorFactory:生成缓存反射器
李> <李>TypeParameterResolver:工具类,解析指定类中的字段,方法返回值,方法参数的类型。
李> <李> PropertyTokenizer是一个迭代器接口,实现嵌套属性解析。
元类:类级别元信息的封装和处理
李> <李> ObjectWrapper:对象的包装,抽象了对象的属性信息,定义了更新属性,查询属性信息的方法。
ObjectFactory:创建指定类型的对象
李> <李> MetaObject:调用ObjectWrapper,完成对象属性的检测,获取,设置等功能。
3。类型转换
JDBC到JAVA类型转换及JAVA类型到JDBC类型转换,两种不同类型的桥梁。
ResolverUtil:根据指定的条件查找指定包下的类。
3。日志模块
适配了第三方日志接口的差异。
JDBC调试:通过JDK动态代理方式,将JDBC操作通过指定的日志框架打印出来。
4。绑定
MapperProxy:代理对象
MapperRegistry: Mapper接口及对应代理对象工厂的注册中心。
MapperMethod:封装了映射器接口中对应方法的信息,以及SQL语句信息。
ParamNameResolver: Mapper接口定义的方法参数。记录参数列表中位置索引和参数名称对应关系
MethodSignature: Mapper接口中定义的方法的相关信息。