<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="test">
<!--开启二级缓存-->
<cache eviction="LRU" flushInterval="600000" size="512" readOnly="true" />
</mapper>
eviction: 是缓存清除策略,当缓存对象数量达到上限后,会自动触发对应算法对缓存对象清除
LRU: 清除最近最少使用
FIFO: 先进先出:按对象进入缓存的顺序来移除他们
SOFT: 软引用 移除基于垃圾回收器状态和软引用规则对象
WEAK: 弱引用 更积极的移除基于垃圾收集器状态和弱引用规则的对象
flushInterval: 代表间隔多长时间自动清除缓存
size: 代表缓存最大数量
readOnly: true代表缓存只读
mybatis中默认开启一级缓存,即同一个sqlSession中缓存查询出的结果,但是sqlSession销毁后,缓存就结束了,应用的场景不多,如果我们需要缓存超出sqlSession,这是需要开启二级缓存,mybatis的二级缓存是以namespace来区分。