Spring学习笔记(二十四):Spring中使用缓存ehcache

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Jalon2015/article/details/53157732

一、 配置文件:
     1.1 spring-context.xml中配置缓存bean

<!-- 缓存配置 -->
    <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
        <property name="configLocation" value="classpath:ehcache-local.xml" />
    </bean> 

    1.2 ehcache-local.xml中配置缓存

<!-- 
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:内存数量最大时是否清除。  
-->  

<?xml version="1.0" encoding="UTF-8"?>
<ehcache updateCheck="false" name="defaultCache">

    <diskStore path="../temp/jeesite/ehcache" />

    <!-- 默认缓存配置. -->
    <defaultCache maxEntriesLocalHeap="100" eternal="false" timeToIdleSeconds="300" timeToLiveSeconds="600"
        overflowToDisk="true" maxEntriesLocalDisk="100000" />
    <!-- 测试缓存 -->
    <cache name="testCache" maxEntriesLocalHeap="10" eternal="false"
        timeToLiveSeconds = "25920000" overflowToDisk="true">
    </cache>
    <!-- 系统缓存 -->
    <cache name="sysCache" maxEntriesLocalHeap="100" eternal="true" overflowToDisk="true"/>

    <!-- 用户缓存 -->
    <cache name="userCache" maxEntriesLocalHeap="100" eternal="true" overflowToDisk="true"/>

    <!-- 工作流模块缓存 -->
    <cache name="actCache" maxEntriesLocalHeap="100" eternal="true" overflowToDisk="true"/>

    <!-- 内容管理模块缓存
    <cache name="cmsCache" maxEntriesLocalHeap="100" eternal="true" overflowToDisk="true"/> -->

    <!-- 系统活动会话缓存 -->
    <cache name="activeSessionsCache" maxEntriesLocalHeap="10000" overflowToDisk="true"
           eternal="true" timeToLiveSeconds="0" timeToIdleSeconds="0"
           diskPersistent="true" diskExpiryThreadIntervalSeconds="600"/>

    <!-- 简单页面缓存
    <cache name="SimplePageCachingFilter" maxEntriesLocalHeap="100" eternal="false" overflowToDisk="true"
        timeToIdleSeconds="120" timeToLiveSeconds="120" memoryStoreEvictionPolicy="LFU"/> -->

</ehcache>

二、 主程序main:main.java

    public static void main(String[] args)
    {
        ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-context.xml");
        CacheManager cache = (CacheManager) ctx.getBean("cacheManager");
        cache.getCache("testCache").put(new Element("a","11"));
        System.out.println(cache.getCache("testCache").get("a").getObjectValue());
    }
阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页