MyBatis整合第三方缓存

        MyBatis缓存做的并不专业,用的是map,但是它给了我们一个接口Cache,我们通过实现这个接口,可以自定义缓存。本例子用的为ehcache ,Hibernate用的也是ehcache缓存技术。
        首先我们从官网上下载ehcache的jar包,还需要两个相关的jar。在MyBatis的基础上需要导入的jar包为 ehcache-core-2.6.8.jar  slf4j-api-1.6.1.jar 和 slf4j-log4j12-1.6.2.jar (请忽略版本号)。
        接下来我们需要写一个Cache的实现。但是MyBatis已经帮我们做好了,在MyBatis官网上有MyBatis和各种项目的整合。我们找到和ehcache的整合,如图:

点进去之后:查看文档

根据提示下载mybatis和ehcache整合所需要的jar包。如 mybatis-ehcache-1.0.3.jar    导入项目中。

接下来就是如何使用了,我们只需要在mapper.xml中指定一个Cache标签。

<mapper namespace="org.acme.FooMapper"> <cache type="org.mybatis.caches.ehcache.EhcacheCache"/> ... </mapper>
然后还需要在类路径下放一个ehcache.xml文件。文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../config/ehcache.xsd">
<!-- 磁盘保存路径 -->
<diskStore path="D:\44\ehcache" />

<defaultCache
maxElementsInMemory="1000"
maxElementsOnDisk="10000000"
eternal="false"
overflowToDisk="true"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU">
</defaultCache>
</ehcache>

第三方缓存整合总的来说 就三步:

  1、导入第三方jar包

  2、导入与第三方缓存整合的适配包,官方有。

  3、mapper.xml 中使用自定义缓存   

<mapper namespace="org.acme.FooMapper"> <cache type="org.mybatis.caches.ehcache.EhcacheCache"/> ... </mapper>
其他mapper.xml中如果也想使用 只需要引用已经使用的mapper.xml 的命名空间即可
如:
<mapper namespace="org.acme.AooMapper">
 <cache-ref namespace="org.acme.FooMapper" />
..
</mapper>
如果有什么问题欢迎讨论。大家一起进步!

转载于:https://www.cnblogs.com/alijava/p/7421020.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值