Java Spring4集成Ehcache2缓存源码分享

06/02 Java应用程序功能和项目 阅读 1483 views 次 人气 0
摘要:

Spring4整合ehcache开源分布式缓存,Spring提供了ehcache相关的API支持类,使得Ehcache API操作变的更为方便。通过Spring配置文件启动初始化cache缓存,在spring bean中可随意操作使用缓存。

开发环境:

JDK1.6 + Eclipse4.X + Spring4.2.5 + Ehcache-2.10.2

相关工具包如下:

spring4.2.5:http://www.what21.com/a/pan/java.lib_spring-framework-4.2.5.html

commons-logging-1.2: http://www.what21.com/a/pan/java.lib_commons-logging-1.2.html

ehcache-2.10.2:http://www.what21.com/a/pan/java.lib_ehcache-2.10.2.html

源码为eclipse工程,相关工具包需要手动引入。


Spring集成Ehcache相关配置:
<bean name="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
    <property name="configLocation">
        <value>classpath:ehcache.xml</value>
    </property>
</bean>

<!-- What21Cache Bean -->
<bean name="what21Cache" class="com.what21.spring4.What21Cache">
    <property name="cacheManager" ref="cacheManager"/>
    <property name="cacheName" value="javaCache"/>
</bean>

此案例中,配置初始化缓存,并且在what21Cache Bean中使用cache。


ehcache.xml配置:

<?xml version="1.0" encoding="UTF-8"?>

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:noNamespaceSchemaLocation="ehcache.xsd"> 
        
    <!--本地路径-->
    <diskStore path="java.io.tmpdir"/>

    <!--CacheManager-->
    <defaultCache
         maxElementsInMemory="10000"
         eternal="false"
         timeToIdleSeconds="120"
         timeToLiveSeconds="120"
         overflowToDisk="true"
         maxElementsOnDisk="10000000"
         diskPersistent="false"
         diskExpiryThreadIntervalSeconds="120"
         memoryStoreEvictionPolicy="LRU"
     />
    
    <!--
    java文件注解查找cache方法名的策略:如果不指定java文件注解中的region="ehcache.xml中的name的属性值", 
          则使用name名为com.lysoft.bean.user.User的cache(即类的全路径名称), 如果不存在与类名匹配的cache名称, 则用 defaultCache
          如果User包含set集合, 则需要另行指定其cache
          例如User包含citySet集合, 则也需要
          添加配置到ehcache.xml中
    -->    
    <cache name="javaCache" 
           maxElementsInMemory="2000" 
           eternal="false" 
           timeToIdleSeconds="120" 
           timeToLiveSeconds="120"
           overflowToDisk="true" />  
        
</ehcache>


相关代码及演示,请下载源码查看。

评论

该文章不支持评论!

分享到: