上图是mybatis 3.4.5版本jar的 结构图,接下来这个系列会顺着这个包的模块进行源码分析。
目录
cache
(1)Cache
缓存的基本接口
(2)CacheException
定义缓存业务异常,继承自PersistenceException
(3)CacheKey
定义缓存的key
默认的hashcode是17
默认的乘积倍数是37
(4)NullCacheKey
继承自CacheKey ,不支持修改
(5)TransactionalCacheManager
事务缓存管理
维护缓存和事务缓存的映射关系
cache.impl
(1)PerpetualCache
持久化缓存
cache.decorators
下面的几种缓存都实现了Cache,适用于不同得场景。
采用装饰器设计模式
(1)BlockingCache
通过加锁的方式,定义了一个阻塞缓存
(2)FifoCache
先进先出
(3)LoggingCache
日志缓存,只要是记录请求缓存多少次,以及命中了多少次
(4)LruCache
最近做少使用算法缓存
(5)SchedualedCache
默认清除1小时以上的缓存
(6)SerializedCache
缓存的对象必须支持序列化
(7)SoftCache
软引用缓存,与垃圾回收相关
(8)SynchronizedCache
同步缓存,在基础方法前面加上了Synchronized关键字
(9)TransactionalCache
事务缓存
(10)WeakCache
弱引用缓存,与垃圾回收相关