spring mvc+ mybaties+ehcache(maven工程),在mapper.xml中使用

来源:互联网 发布:协同过滤推荐算法实例 编辑:程序博客网 时间:2024/06/07 22:19
参考网站: 
http://www.tuicool.com/articles/myeANv 

http://my.oschina.net/u/1469930/blog/388004 

第一步: 
在porm.xml文件中引入需要引进的jar包 

<!--配置ehcache  --> 
    <dependency> 
      <groupId>org.mybatis</groupId> 
      <artifactId>mybatis-ehcache</artifactId> 
      <version>1.0.0</version> 
    </dependency> 
    <dependency> 
      <groupId>org.ehcache</groupId> 
      <artifactId>ehcache</artifactId> 
      <version>3.0.0.m3</version> 
     </dependency> 

第二步: 
在根路径下创建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 path="java.io.tmpdir" /> 
       <defaultCache eternal="false" maxElementsInMemory="1000" 
       overflowToDisk="false" diskPersistent="false" timeToIdleSeconds="0" 
       timeToLiveSeconds="600" memoryStoreEvictionPolicy="LRU" /> 
       <cache name="testCache" eternal="false" maxElementsInMemory="100" 
       overflowToDisk="false" diskPersistent="false" timeToIdleSeconds="0" 
       timeToLiveSeconds="300" memoryStoreEvictionPolicy="LRU" /> 
</ehcache> 
<!-- 
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(较少使用) 
--> 

第三步: 
在spring-mybaties.xml中添加下面的代码 

    <!-- 使用ehcache缓存 --> 
    <bean id="ehCacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> 
        <property name="configLocation" value="classpath:ehcache.xml" /> 
    </bean> 

第四步: 
测试 

   <!-- 以下两个<cache>标签二选一,第一个可以输出日志,第二个不输出日志 -->  
     <!-- <cache type="org.mybatis.caches.ehcache.LoggingEhcache"/>   -->  
     <!--  <cache type="org.mybatis.caches.ehcache.EhcacheCache"/> --> 
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long"> 


    @RequestMapping("test") 
    public void test(){ 
        long beginTime=System.nanoTime(); 
        Demo demo = demoMapper.selectByPrimaryKey(1L); 
        long endTime=System.nanoTime(); 
        System.out.println("查询时间 :" + (endTime-beginTime)+"ns"); 
    }
0 0
原创粉丝点击