Mybatis 整合 ehcache缓存

自定义缓存 - ehcache

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

  1. 导包

<!-- https://mvnrepository.com/artifact/org.mybatis.caches/mybatis-ehcache  --><dependency>
    <groupId>org.mybatis.caches</groupId>
    <artifactId>mybatis-ehcache</artifactId>
    <version>1.1.0</version></dependency>
  1. 在 Mapper.xml 中指定使用 ehcache 缓存实现

<!--在当前 Mapper.xml 中使用二级缓存--><cache type="org.mybatis.caches.ehcache.EhcacheCache"/>
  1. 在resource中定义配置文件 ehcache.xml

<?xml version="1.0" encoding="UTF-8" ?><ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd" updateCheck="false">

    <!--
    diskStore: 缓存路径, ehcache分为内存和磁盘两级, 此属性定义磁盘的缓存位置
    参数:
    user.home - 用户主目录
    user.dir - 用户当前工作目录
    java.io.tmpdir - 默认临时文件路径
    -->    <!--  java项目 www.fhadmin.org -->
    <!--当二级缓存的对象 超过内存限制时(缓存对象的个数>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"/>

    <!--
       java项目 www.fhadmin.cn
       maxElementsInMemory:设置 在内存中缓存 对象的个数
       maxElementsOnDisk:设置 在硬盘中缓存 对象的个数
       eternal:设置缓存是否 永远不过期
       overflowToDisk:当系统宕机的时候是否保存到磁盘上
       maxElementsInMemory的时候,是否转移到硬盘中
       timeToIdleSeconds:当2次访问 超过该值的时候,将缓存对象失效
       timeToLiveSeconds:一个缓存对象 最多存放的时间(生命周期)
       diskExpiryThreadIntervalSeconds:设置每隔多长时间,通过一个线程来清理硬盘中的缓存
       clearOnFlush: 内存数量最大时是否清除
       memoryStoreEvictionPolicy:当超过缓存对象的最大值时,处理的策略;LRU (最少使用),FIFO (先进先出), LFU (最少访问次数)
     --></ehcache>
(0)

相关推荐

  • spring与mybatis整合详解

    spring与mybatis整合详解 在数据库dbmis中创建student表: 建立Maven项目,创建Dao层,POJO层,Controller层,并配置Mapper.applicationCon ...

  • SpringBoot+Shiro+mybatis整合实战

    SpringBoot+Shiro+mybatis整合 1. 使用Springboot版本2.0.4 与shiro的版本 引入springboot和shiro依赖 <?xml version=&q ...

  • Spring整合MyBatis

    Spring整合MyBatis

  • 8 整合MyBatis

    8 整合MyBatis module:spring-10-mybatis 1.导入相关jar包 junit <dependency> <groupId>junit</gr ...

  • 【干货】Spring Boot 整合 Mybatis

    通过在前面的文章中我们已经了解到如何快速构建一个基于 Spring Boot 架构的 Web 服务以及接口开发: [干货]如何快速构建SpringBoot Web服务 基于 Spring Boot 的 ...

  • spring整合mybatis的流程步骤

    spring整合mybatis 创建流程 1.创建项目 导入依赖 POM文件 <?xml version="1.0" encoding="UTF-8"?& ...

  • Spring 整合MyBatis

    Spring 整合MyBatis 1.在pom.xml中导入依赖包 导入依赖包后,会自动下载,如果代码一直是红的 刷新Maven就行了 <dependencies> <depende ...

  • MyBatis学习06(动态SQL和缓存)

    10.动态SQL 10.1 什么是动态SQL 动态SQL指的是根据不同的查询条件 , 生成不同的Sql语句. 官网描述: MyBatis 的强大特性之一便是它的动态 SQL.如果你有使用 JDBC 或 ...

  • springboot整合mybatis

    springboot整合mybatis