MyBatis默认的缓存规则:算法
映射语句文件中的全部 select 语句将会被缓存。缓存
映射语句文件中的全部 insert,update 和 delete 语句会刷新缓存。安全
缓存会使用 Least Recently Used(LRU,最近最少使用的)算法来收回。dom
根据时间表(好比 no Flush Interval,没有刷新间隔), 缓存不会以任什么时候间顺序 来刷新。ide
缓存会存储列表集合或对象(不管查询方法返回什么)的 1024 个引用。线程
缓存会被视为是 read/write(可读/可写)的缓存,意味着对象检索不是共享的,而 且能够安全地被调用者修改,而不干扰其余调用者或线程所作的潜在修改xml
基本配置:
对象
<cache eviction="FIFO" flushInterval="60000" size="512" readOnly="true"/>
可用的回收策略:it
LRU – 最近最少使用的:移除最长时间不被使用的对象。io
FIFO – 先进先出:按对象进入缓存的顺序来移除它们。
SOFT – 软引用:移除基于垃圾回收器状态和软引用规则的对象。
WEAK – 弱引用:更积极地移除基于垃圾收集器状态和弱引用规则的对象。
使用自定义缓存:
<cache type="com.domain.something.MyCustomCache"/>