首页 > 代码库 > 01_MyBatis EHCache集成及所需jar包,ehcache.xml配置文件参数配置及mapper中的参数配置
01_MyBatis EHCache集成及所需jar包,ehcache.xml配置文件参数配置及mapper中的参数配置
1与mybatis集成时需要的jar
ehcache-core-2.6.5.jar mybatis-ehcache-1.0.2.jar |
Mybatis、日志、EHCache所需要的jar包如下:
2 EHCache与mybatis集成
EHCache是一种广泛使用java分布式缓存通用缓存,JavaEE中的一个轻量级的容器。
EHCache集成是基于ehcache-core,没有任何其它第三方应用程序。
想使用EHCache到她们的应用程序的用户,必须下载EHCache的zip bundle,解压它添加这些jars到classpath路径下。使用Apache Maven的用户只需要在pom.xml文件中添加如下内容:
<dependencies>
...
<dependency>
<groupId>org.mybatis.caches</groupId>
<artifactId>mybatis-ehcache</artifactId>
<version>1.0.2</version>
</dependency>
...
</dependencies>
接着需要在mapper的xml文件中配置如下内容:
<mappernamespace="org.acme.FooMapper">
<cachetype="org.mybatis.caches.ehcache.EhcacheCache"/>...
</mapper>
你也可以提供可以再运行动态变更的如下参数:
<mappernamespace="org.acme.FooMapper">
<cachetype="org.mybatis.caches.ehcache.EhcacheCache"/>
<propertyname="timeToIdleSeconds"value=http://www.mamicode.com/"3600"/>
<propertyname="timeToLiveSeconds"value=http://www.mamicode.com/"3600"/>
<propertyname="maxEntriesLocalHeap"value=http://www.mamicode.com/"1000"/>
<propertyname="maxEntriesLocalDisk"value=http://www.mamicode.com/"10000000"/>
<propertyname="memoryStoreEvictionPolicy"value=http://www.mamicode.com/"LRU"/>
</cache>
...
</mapper>
如果用户需要日志缓存操作,可以插入Cachelogging version:
<mappernamespace="org.acme.FooMapper">
<cachetype="org.mybatis.caches.ehcache.LoggingEhcache"/>
...
</mapper>
需要通xml配置文件配置EHCache的用户,必须要在classpath路径下放置/ehcache.xml资源。
若/ehcache.xml资源没有发现或者在加载/ehcache.xml的时候发生错误,将会使用默认的配置。
3 /ehcache.xml配置文件参数配置
<?xmlversion="1.0"encoding="UTF-8"?> <ehcachexmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd" updateCheck="true"monitoring="autodetect"dynamicConfig="true">
<diskStorepath="java.io.tmpdir"/>
<!-- name:Cache的唯一标识 maxElementsInMemory:内存中最大缓存对象数 maxElementsOnDisk:磁盘中最大缓存对象数,若是0表示无穷大 eternal:Element是否永久有效,一但设置了,timeout将不起作用 overflowToDisk:配置此属性,当内存中Element数量达到maxElementsInMemory时,Ehcache将会Element写到磁盘中 timeToIdleSeconds:设置Element在失效前的允许闲置时间。仅当element不是永久有效时使用,可选属性,默认值是0,也就是可闲置时间无穷大 timeToLiveSeconds:设置Element在失效前允许存活时间。最大时间介于创建时间 和失效时间之间。仅当element不是永久有效时使用,默认是0.,也就是element存活时间无穷大 diskPersistent:是否缓存虚拟机重启期数据 diskExpiryThreadIntervalSeconds:磁盘失效线程运行时间间隔,默认是120秒 diskSpoolBufferSizeMB:这个参数设置DiskStore(磁盘缓存)的缓存区大小。默认是30MB。每个Cache都应该有自己的一个缓冲区 memoryStoreEvictionPolicy:当达到maxElementsInMemory限制时,Ehcache将会根据指定的策略去清理内存。默认策略是LRU(最近最少使用)。你可以设置为FIFO(先进先出)或是LFU(较少使用) --> <defaultCachemaxElementsInMemory="10000" eternal="false" timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true" maxElementsOnDisk="10000000" diskPersistent="false" diskExpiryThreadIntervalSeconds="120" memoryStoreEvictionPolicy="LRU"/> </ehcache> |
sqlMapConfig.xml中的<settings>设置如下:
<!--开启延迟加载 --> <settings> <!--全局的延迟加载的开关必须要开启 --> <settingname="lazyLoadingEnabled"value="true"/> <!--积极加载设置成false --> <settingname="aggressiveLazyLoading"value="false"/> <!--开启二级缓存,缓存中只要是需要配置的针对的都是二级缓存 --> <settingname="cacheEnabled"value="true"/> </settings> |
mapper文件中的内容如下:
01_MyBatis EHCache集成及所需jar包,ehcache.xml配置文件参数配置及mapper中的参数配置