本文主要讲述MyBatis中CachingExecutor中使用到的二级缓存存储空间,也就是👇这个图
如果看到这个图还觉得特别陌生的话,就要先去看看前面的文章**MyBatis(四)**了,顺便知道在CachingExecutor中是在哪里调用这个Cache链条的
在哪创建的
这个Cache链条是在CacheBuilder.build()中创建的,顺序是固定的,我们能够做的事情选择使用LruCache还是FifoCache来解决OOM的问题。创建好的Cache链条会存储在MappedStatement中,然后在CachingExecutor中就会直接使用这一条链条
PerpetualCache
先来看看最后一个Cache,也就是说,所有的数据最终都是要存储到PerpetualCache上的
属性和构造方法
public class PerpetualCache implements Cache {