在Mybatis中使用自定义缓存ehcache

Posted 程序员超时空

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Mybatis中使用自定义缓存ehcache相关的知识,希望对你有一定的参考价值。

自定义缓存 - ehcache

Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器

  1. 导包

    org.mybatis.caches mybatis-ehcache 1.1.0
  2. 在 Mapper.xml 中指定使用 ehcache 缓存实现

  3. 在resource中定义配置文件 ehcache.xml

    <?xml version="1.0" encoding="UTF-8" ?>

    <!--
    diskStore: 缓存路径, ehcache分为内存和磁盘两级, 此属性定义磁盘的缓存位置
    参数:
    user.home - 用户主目录
    user.dir - 用户当前工作目录
    java.io.tmpdir - 默认临时文件路径
    -->
    
    <!--当二级缓存的对象 超过内存限制时(缓存对象的个数>maxElementsInMemory),存放入的硬盘文件  -->
    <diskStore path="./tempdir/Tmp_Ehcache"/>
    
    <!--default 默认缓冲策略, 当ehcache找不到定义的缓存时, 则使用这个缓存策略, 这个只能定义一个-->
    <defaultCache
        eternal="false"
        maxElementsInMemory="10000"
        overflowToDisk="false"
        diskPersistent="false"
        timeToIdleSeconds="1800"
        timeToLiveSeconds="259200"
        memoryStoreEvictionPolicy="LRU"/>
    
    <cache
        name="cloud_user"
        eternal="false"
        maxElementsInMemory="5000"
        overflowToDisk="false"
        diskPersistent="false"
        timeToIdleSeconds="1800"
        timeToLiveSeconds="1800"
        memoryStoreEvictionPolicy="LRU"/>
    
    <!--
       maxElementsInMemory:设置 在内存中缓存 对象的个数
       maxElementsOnDisk:设置 在硬盘中缓存 对象的个数
       eternal:设置缓存是否 永远不过期
       overflowToDisk:当系统宕机的时候是否保存到磁盘上
       maxElementsInMemory的时候,是否转移到硬盘中
       timeToIdleSeconds:当2次访问 超过该值的时候,将缓存对象失效
       timeToLiveSeconds:一个缓存对象 最多存放的时间(生命周期)
       diskExpiryThreadIntervalSeconds:设置每隔多长时间,通过一个线程来清理硬盘中的缓存
       clearOnFlush: 内存数量最大时是否清除
       memoryStoreEvictionPolicy:当超过缓存对象的最大值时,处理的策略;LRU (最少使用),FIFO (先进先出), LFU (最少访问次数)
     -->
    

以上是关于在Mybatis中使用自定义缓存ehcache的主要内容,如果未能解决你的问题,请参考以下文章

使用mybatis中的自定义TypeHandler处理PostgreSQL中的Json类型字段

(转)MyBatis 二级缓存和自定义缓存

Mybatis源码分析自定义缓存分页的实现

mybatis中typeHandler自定义实现json的读写

Mybatis自定义分布式二级缓存实现与遇到的一些问题解决方案!

Mybatis自定义TypeHandler实现数据库Json数组转List<T>对象