Mybatis源码分析(1) - Mybatis包目录简介

作者: 疯狂小兵 | 2019-03-29 | 阅读
「编辑」 「本文源码」

Mybatis核心包

Map类图

包名称 包内内容简介
annotation 注解目录。包括所有的注解。如@SELECT,@UPDATE
binding Mapper类的实例反射生成工具目录
builder 主要是注解,mapper和SqlSuorce的构造器及转换器
cache Mybatis内部缓存接口。实现了一些特定的缓存策略。FifoCache,LruCache,BlockingCache,LoggingCache
cursor 默认的游标处理类
dataSource 数据源工厂类及实现。实现类包括JndiDataSourceFactoryPooledDataSourceFactoryUnpooledDataSourceFactory。 数据源实现类: UnpooledDataSourcePooledDataSource
exceptions Mybatis自定义的三个异常类。ExceptionFactoryPersistenceExceptionTooManyResultsExceptionIbatisException。都继承自RuntimeException
executor 执行器相关包。包括Key生成器、加载器(包括Cglib、Javassist的代理,结果加载器)、参数处理器接口、结果处理器、结果集(resultSet)处理器、Statement处理器(实现类:BaseStatementHandlerCallableStatementHandlerPreparedStatementHandlerRoutingStatementHandlerSimpleStatementHandler)、执行器(SimpleExecutorReuseExecutorCachingExecutorBatchExecutorBaseExecutor)
io 主要是定义的几个VFS(VFSDefaultVFSClassLoaderWrapper)
javassist javassist的字节码处理包
jdbc 与Sql相关的操作。如Sql运行器,脚本运行器和Sql封装类等
lang 指定是用java7还是java8的API的注解.UsesJava7UsesJava8
logging 各个类型的日志适配器,都实现了Log接口。StdOutImplSlf4jImplNoLoggingImplLog4j2ImplLog4jImplJdk14LoggingImplBaseJdbcLoggerJakartaCommonsLoggingImpl
mapping 主要是接口参数,sql和返回结果的映射类,主要类包括:MappedStatement,ParameterMap,ParameterMapping,ResultMap,ResultMapping,BoundSql,SqlSource等类
ognl ognl包在Mybatis中的内部代码引用
parsing 变量解析.如解析${},#{}
plugin 主要包含插件的定义接口。如Interceptor,Plugin,InterceptorChain
reflection 主要是一些反射操作的工具方法和对象工厂类,以及一些常用的包装类,如BaseWrapper,BeanWrapper,CollectionWrapper,MapWrapper,ObjectWrapper,,,
scripting 执行驱动和动态Sql解析的老巢
session 主要是SqlSession和SqlSessionFactory
transaction 主要是mybatis简单封装的jdbc事务操作类
type 各个类型数据的处理器。用于动态的设置参数和转换数据。如IntegerTypeHandler用来处理Integer类型的值的set和get操作。除了八大基本类型。还有常用的集合及Map类型,还增加了各种时间类型的处理器

总结

通过整理每个包的主要功能。通览整个mybatis的代码结构,了解各个组件的位置和大概的处理关系。为后续分析源码打下基础。


版权声明:本文由 在 2019年03月29日发表。本文采用CC BY-NC-SA 4.0许可协议,非商业转载请注明出处,不得用于商业目的。
文章题目及链接:《Mybatis源码分析(1) - Mybatis包目录简介》




  相关文章:

「游客及非Github用户留言」:

「Github登录用户留言」:

TOP