po类 得实现序列化接口
在sqlMapConfig.xml文件中添加
<settings>
<!--哇哇哇 开启二级缓存-->
<setting name="cacheEnable" value="true"/>
</settings>
在XXXMapper.xml文件中添加(此标签有好多属性,在最下面)
<cache/>
-
二级缓存的特点:
* 1,需要配置
* 2,可以管理(开启,关闭,清空,使用)* 一级和二级缓存适用的场景: * 1, 被经常查询的数据【适用】 * 2, 相对来说不重要的数据【适用】 * 3, 对实时性要求不高的数据【适用】 * 4, 在多表关联中,最好是存放单表的数据在缓存中【适用】
blocking(是否使用阻塞缓存): 默认为false,当指定为true时将采用BlockingCache进行封装,blocking,阻塞的意思,使用BlockingCache会在查询缓存时锁住对应的Key,如果缓存命中了则会释放对应的锁,否则会在查询数据库以后再释放锁这样可以阻止并发情况下多个线程同时查询数据,详情可参考BlockingCache的源码。
flushInterval(清空缓存的时间间隔): 单位毫秒,可以被设置为任意的正整数。 默认情况是不设置,也就是没有刷新间隔,缓存仅仅调用语句时刷新。
size(引用数目): 可以被设置为任意正整数,要记住你缓存的对象数目和你运行环境的可用内存资源数目。默认值是1024。
readOnly(只读):属性可以被设置为true或false。只读的缓存会给所有调用者返回缓存对象的相同实例。因此这些对象不能被修改。这提供了很重要的性能优势。可读写的缓存会返回缓存对象的拷贝(通过序列化)。这会慢一些,但是安全,因此默认是false。
eviction(回收策略): 默认的是 LRU:
1.LRU – 最近最少使用的:移除最长时间不被使用的对象。
2.FIFO – 先进先出:按对象进入缓存的顺序来移除它们。
3.SOFT – 软引用:移除基于垃圾回收器状态和软引用规则的对象。
4.WEAK – 弱引用:更积极地移除基于垃圾收集器状态和弱引用规则的对象。
ps: 此段为复制黏贴 author : light-zhang