myBatis源码解析-缓存篇(2)
上一章分析了mybatis的源码的日志模块,像我们经常说的mybatis一级缓存,二级缓存,缓存究竟在底层是怎样实现的。此次开始分析缓存模块 1. 源码位置,mybatis源码包位于org.apache.ibatis.cache下,如图 2. 先从org.apache.ibatis.cache下的cache接口开始 // 缓存接口 public interface Cache { // 获取缓存ID String getId(); // 放入缓存 void putObject(Object key, Object value); // 获取缓存 Object getObject(Object key); // 移除某一缓存 Object removeObject(Object key); // 清除缓存 void clear(); // 获取缓存大小 int getSize(); // 获取锁 ReadWriteLock getReadWriteLock(); } mybatis提供了自定义的缓存接口,功能通俗易懂,没什么好解释的。有接口,必然有实现,看一下缓存接口的基本实现类PerpetualCache,所在路径为org.apache.ibatis.cache.impl下。 public class PerpetualCache implements Cache { //