23-Mybatis集成第三方缓存框架EHCache
上一篇:22-Mybatis缓存相关设置对一级缓存和二级缓存的影响https://blog.csdn.net/fsjwin/article/details/109685932
mybatis本身有缓存的实现,但是可以集成更专业的缓存框架比如:EHCache。
1. Mybatis的缓存接口
org.apache.ibatis.cache.Cache 为mybatis的缓存接口。
加入依赖后的:
2. Mybatis集成EHCache步骤
2.1 导入依赖
参考整合官网:http://mybatis.org/ehcache-cache/
<!--ehcache--><dependency><groupId>org.mybatis.caches</groupId><artifactId>mybatis-ehcache</artifactId><version>1.2.1</version></dependency>
2.2 配置文件ehcache.xml
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../config/ehcache.xsd"><diskStore path="D:\tmp\ehcache"/><!--name:缓存名称。maxElementsInMemory:缓存最大个数。eternal:对象是否永久有效,一但设置了,timeout将不起作用。timeToIdleSeconds:设置对象在失效前的允许闲置时间(单位:秒)。仅当eternal=false对象不是永久有效时使用,可选属性,默认值是0,也就是可闲置时间无穷大。timeToLiveSeconds:设置对象在失效前允许存活时间(单位:秒)。最大时间介于创建时间和失效时间之间。仅当eternal=false对象不是永久有效时使用,默认是0.,也就是对象存活时间无穷大。overflowToDisk:当内存中对象数量达到maxElementsInMemory时,Ehcache将会对象写到磁盘中。diskSpoolBufferSizeMB:这个参数设置DiskStore(磁盘缓存)的缓存区大小。默认是30MB。每个Cache都应该有自己的一个缓冲区。maxElementsOnDisk:硬盘最大缓存个数。diskPersistent:是否缓存虚拟机重启期数据 Whether the disk store persists between restarts of the Virtual Machine. The default value is false.diskExpiryThreadIntervalSeconds:磁盘失效线程运行时间间隔,默认是120秒。memoryStoreEvictionPolicy:当达到maxElementsInMemory限制时,Ehcache将会根据指定的策略去清理内存。默认策略是LRU(最近最少使用)。你可以设置为FIFO(先进先出)或是LFU(较少使用)。clearOnFlush:内存数量最大时是否清除。--><defaultCachemaxElementsInMemory="10000"maxElementsOnDisk="10000000"eternal="false"overflowToDisk="true"timeToIdleSeconds="120"timeToLiveSeconds="120"diskExpiryThreadIntervalSeconds="120"memoryStoreEvictionPolicy="LRU"/>
</ehcache>
2.3 配置使用EHCache StudentDao.xml
<cache type="org.mybatis.caches.ehcache.EhcacheCache"/>
2.4 测试
- 测试
@Testpublic void test26() {SqlSession sqlsession = MybatisUtil.getSqlsession();SqlSession sqlsession2 = MybatisUtil.getSqlsession();StudentDao studentDao = sqlsession.getMapper(StudentDao.class);StudentDao studentDao2 = sqlsession2.getMapper(StudentDao.class);//可以吧查询的条件放进去,也可以使用一个单独的类ParaObject类封装就可以了。List<StudentVo> studentList = studentDao.selectStudentResultType(1001);System.out.println("清理缓存");sqlsession.clearCache();sqlsession.close();//必须关掉,才会进入二级缓存中。List<StudentVo> studentList2 = studentDao2.selectStudentResultType(1001);}
- 确认使用了ehcache
- 本地缓存文件:
- 测试结果
PooledDataSource forcefully closed/removed all connections.
Cache Hit Ratio [com.yuhl.dao.StudentDao]: 0.0
Opening JDBC Connection
Created connection 471579726.
==> Preparing: select id,name,email,age from student where id=?
==> Parameters: 1001(Integer)
<== Columns: id, name, email, age
<== Row: 1001, 张三, zhangsan@qq.com, 20
<== Total: 1
清理缓存
Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@1c1bbc4e]
Returned connection 471579726 to pool.
Cache Hit Ratio [com.yuhl.dao.StudentDao]: 0.5
2.5 多个namespace使用EHCache
UserDao.xml 配置缓存饮用即可,只需要在一个地方配置,其他地方使用即可:
UserDao.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuhl.dao.UserDao"><!--引用其他地方的缓存配置--><cache-ref namespace="com.yuhl.dao.StudentDao"/><!-- <cache type="org.mybatis.caches.ehcache.EhcacheCache"/>--></mapper>
3.总结
下一篇:01-Springboot优点&缺点https://blog.csdn.net/fsjwin/article/details/109698409
23-Mybatis集成第三方缓存框架EHCache相关推荐
- springboot+mybatis集成自定义缓存ehcache用法笔记
今天小编给大家整理了springboot+mybatis集成自定义缓存ehcache用法笔记,希望对大家能有所办帮助! 一.ehcache介绍 EhCache 是一个纯Java的进程内缓存管理框架,属 ...
- 三大缓存框架ehcache、memcache和redis的介绍
三大缓存框架ehcache.memcache和redis的介绍 2016-04-12 架构说 4964 阅读 最近项目组有用到这三个缓存,去各自的官方看了下,觉得还真的各有千秋!今天特意归纳下各个缓存 ...
- springMVC集成缓存框架Ehcache
概述 Ehcache算是当前比较流行的缓存框架,使用缓存可以极大的缓解服务器和数据库的压力,提高访问效率,提高服务器的并发能力.接下来我们看怎么把缓存在spring mvc种使用起来. 详细 代码下载 ...
- MyBatis整合第三方缓存
MyBatis缓存做的并不专业,用的是map,但是它给了我们一个接口Cache,我们通过实现这个接口,可以自定义缓存.本例子用的为ehcache ,Hibernate用的也是ehcache缓存技术. ...
- 关于Mybatis整合第三方缓存
需要导入第三方相关的jar包:ehcache-core-2.6.8.jar.slf4j-api-1.6.1.jar.slf4j-log4j12-1.6.2.jar 还需要导入相关的适配文件到lib下: ...
- Mybatis集成二级缓存与同时使用缓存与事务存在的坑
今天在看分布式事务的时候,突然收到app不能签到的消息,赶紧解决. 具体解决方法: 1.把执行错误的处理方法提取出来,作为测试方法 2.这个方法里面有两个插入语句,一条查询语句,一个更新语句,涉及到三 ...
- Java 开源分布式缓存框架Ehcache
Ehcache 是一个Java实现的开源分布式缓存框架,EhCache 可以有效地减轻数据库的负载,可以让数据保存在不同服务器的内存中,在需要数据的时候可以快速存取.同时EhCache 扩展非常简单, ...
- Java的进程内缓存框架:EhCache (转)
EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider. Ehcache缓存的特点: 1. 快速. 2. 简单. 3. 多种缓存 ...
- Spring Boot 集成 本地缓存Guava框架
Spring Boot 作为主流微服务框架,拥有成熟的社区生态.市场应用广泛,为了方便大家,整理了一个基于spring boot的常用中间件快速集成入门系列手册,涉及RPC.缓存.消息队列.分库分表. ...
最新文章
- 教育学专硕考试科目计算机,2017考研:哪些专业的考试科目相同?
- [19/04/04-星期四] IO技术_CommonsIO(通用IO,别人造的轮子,FileUtils类 操作文件 IOUtilsl类 操作里边的内容 )...
- c++:栈的基本操作+实例:迷宫求解
- shell脚本安装mysql并安装一个小服务
- boost::system::windows_error相关的测试程序
- C#进阶系列——WebApi 接口测试工具:WebApiTestClient
- c++继承:共有、私有、保护继承
- node --- Missing write access to 解决
- 红橙Darren视频笔记 IOC注解框架 自己写个注解框架
- js匿名函数--转了
- ipad python编程软件_7款学习Python编程的iPhone/iPad应用
- LabVIEW虚拟示波器设计
- 深入理解Camera 基础知识点
- 【翻译】代码指针完整性——Code Pointer Integrity
- 3374——数据结构实验之查找二:平衡二叉树
- 探索:使用北鲲云平台利用Gaussian16进行HAT反应过渡态的寻找
- 基于SSM的小区物业管理系统JAVA【数据库设计、论文、源码、开题报告】
- wgc84 笛卡尔_从经纬度到笛卡尔坐标的转换
- faker和劫的图片_LOLS7faker劫出装顺序是怎么样
- Cocos Creator 下载图片动态替换纹理