MyBatis整合ehcache

来源:互联网 发布:死亡岛有网络怎么联机 编辑:程序博客网 时间:2024/06/05 00:09

首先在maven中导入如下的依赖:

<dependency>      <groupId>org.slf4j</groupId>      <artifactId>slf4j-api</artifactId>      <version>${slf4j.version}</version>    </dependency>    <dependency>      <groupId>org.slf4j</groupId>      <artifactId>slf4j-log4j12</artifactId>      <version>${slf4j.version}</version>    </dependency><dependency>      <groupId>net.sf.ehcache</groupId>      <artifactId>ehcache</artifactId>      <version>2.10.3</version>    </dependency>        <dependency>      <groupId>org.mybatis.caches</groupId>      <artifactId>mybatis-ehcache</artifactId>      <version>1.0.3</version></dependency>



在对应的sql映射文件中添加如下的配置:】


<cache type="org.mybatis.caches.ehcache.EhcacheCache"></cache>



ehcache配置文件:



<?xml version="1.0" encoding="UTF-8"?><ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../config/ehcache.xsd"> <!-- 磁盘保存路径 --> <diskStore path="/home/lsj/cache" />  <defaultCache    maxElementsInMemory="10000"    maxElementsOnDisk="10000000"   eternal="false"    overflowToDisk="true"    timeToIdleSeconds="120"   timeToLiveSeconds="120"    diskExpiryThreadIntervalSeconds="120"   memoryStoreEvictionPolicy="LRU"> </defaultCache></ehcache>


属性说明:
 diskStore:指定数据在磁盘中的存储位置。
 defaultCache:当借助CacheManager.add("demoCache")创建Cache时,EhCache便会采用<defalutCache/>指定的的管理策略
 
以下属性是必须的:
 maxElementsInMemory - 在内存中缓存的element的最大数目
 maxElementsOnDisk - 在磁盘上缓存的element的最大数目,若是0表示无穷大
 eternal - 设定缓存的elements是否永远不过期。如果为true,则缓存的数据始终有效,如果为false那么还要根据timeToIdleSeconds,timeToLiveSeconds判断
 overflowToDisk - 设定当内存缓存溢出的时候是否将过期的element缓存到磁盘上
 
以下属性是可选的:
 timeToIdleSeconds - 当缓存在EhCache中的数据前后两次访问的时间超过timeToIdleSeconds的属性取值时,这些数据便会删除,默认值是0,也就是可闲置时间无穷大
 timeToLiveSeconds - 缓存element的有效生命期,默认是0.,也就是element存活时间无穷大
 diskSpoolBufferSizeMB 这个参数设置DiskStore(磁盘缓存)的缓存区大小.默认是30MB.每个Cache都应该有自己的一个缓冲区.
 diskPersistent - 在VM重启的时候是否启用磁盘保存EhCache中的数据,默认是false。
 diskExpiryThreadIntervalSeconds - 磁盘缓存的清理线程运行间隔,默认是120秒。每个120s,相应的线程会进行一次EhCache中数据的清理工作
 memoryStoreEvictionPolicy - 当内存缓存达到最大,有新的element加入的时候, 移除缓存中element的策略。默认是LRU(最近最少使用),可选的有LFU(最不常使用)和FIFO(先进先出)

如果其他的sql映射文件也需要使用ehcache可以进行如下的配置:

<cache-ref namespace="com.test.dao.EmployeeMapper"></cache-ref>




原创粉丝点击