EhCache运用
来源:互联网 发布:开源电商平台php 编辑:程序博客网 时间:2024/06/06 04:27
官方网站:http://ehcache.sourceforge.net/
Cache存储方式:内存或磁盘。
SpringMVC POM文件
<ehcache.version>2.6.9</ehcache.version>
<ehcache-web.version>2.0.4</ehcache-web.version>
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
<version>${ehcache.version}</version>
</dependency>
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-web</artifactId>
<version>${ehcache-web.version}</version>
</dependency>
具体哪些包搞不清了(我想应该只需要上面吧),可能还需要日志包
<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>
Cache属性的配置文件(ehcache-local.xml)
<?xmlversion="1.0"encoding="UTF-8"?>
<ehcacheupdateCheck="false"name="defaultCache">
<cacheManagerPeerProviderFactoryclass="net.sf.ehcache.distribution.RMICacheManagerPeerProviderFactory"
properties="peerDiscovery=automatic,multicastGroupAddress=230.0.0.1,multicastGroupPort=4446"/>
<cacheManagerPeerListenerFactoryclass="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"/>
<diskStorepath="../temp/jeesite/ehcache"/>
<!--默认缓存配置. -->
<defaultCachemaxEntriesLocalHeap="100"eternal="false"overflowToDisk="true"
maxEntriesLocalDisk="100000"timeToIdleSeconds="5"timeToLiveSeconds="5">
<cacheEventListenerFactoryclass="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
properties="replicatePuts=false,replicateUpdatesViaCopy=false"/>
</defaultCache>
<!--系统缓存(黄色字体是设置缓存不用的实效时间,和缓存的有效时间) -->
<cachename="sysCache"maxEntriesLocalHeap="100"eternal="false"overflowToDisk="true"
timeToIdleSeconds="500"timeToLiveSeconds="500"
timeToIdleSeconds="5"timeToLiveSeconds="5">
<cacheEventListenerFactoryclass="net.sf.ehcache.distribution.RMICacheReplicatorFactory"/>
</cache>
<!--用户缓存 -->
<cachename="userCache"maxEntriesLocalHeap="100"eternal="false"overflowToDisk="true"
timeToIdleSeconds="5"timeToLiveSeconds="5">
<cacheEventListenerFactoryclass="net.sf.ehcache.distribution.RMICacheReplicatorFactory"/>
</cache>
<!--工作流模块缓存 -->
<cachename="actCache"maxEntriesLocalHeap="100"eternal="false"overflowToDisk="true">
<cacheEventListenerFactoryclass="net.sf.ehcache.distribution.RMICacheReplicatorFactory"/>
</cache>
<!--系统活动会话缓存 -->
<cachename="activeSessionsCache"maxEntriesLocalHeap="10000"overflowToDisk="true"
eternal="false"timeToLiveSeconds="0"timeToIdleSeconds="0"
diskPersistent="true"diskExpiryThreadIntervalSeconds="600">
<cacheEventListenerFactoryclass="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
properties="replicateAsynchronously=true,replicatePuts=true, replicateUpdates=true,
replicateUpdatesViaCopy=false,replicateRemovals=true "/>
</cache>
</ehcache>
结构图:
CacheUtils的公用方法:
import java.net.URL;
importnet.sf.ehcache.Cache;
importnet.sf.ehcache.CacheManager;
importnet.sf.ehcache.Element;
/**
* Cache工具类
*@version 2013-5-29
*/
publicclass EhcacheUtil {
privatestaticfinal Stringpath ="/cache/ehcache-local.xml";
privatestatic CacheManagercacheManager;
privatestaticfinal StringSYS_CACHE ="sysCache";
privatestaticCacheManager getCacheManager(){
//创建一个缓存管理器
if(cacheManager == null){
URL url =EhcacheUtil.class.getResource(path);
cacheManager =CacheManager.create(url);
}
returncacheManager;
}
/**
* 获取SYS_CACHE缓存
* @param key
* @return
*/
publicstatic Object get(Stringkey) {
returnget(SYS_CACHE,key);
}
/**
* 写入SYS_CACHE缓存
* @param key
* @return
*/
publicstaticvoid put(Stringkey, Objectvalue) {
put(SYS_CACHE,key,value);
}
/**
* 从SYS_CACHE缓存中移除
* @param key
* @return
*/
publicstaticvoid remove(Stringkey) {
remove(SYS_CACHE,key);
}
/**
* 获取缓存
* @param cacheName
* @param key
* @return
*/
publicstatic Object get(StringcacheName, Stringkey) {
Element element =getCache(cacheName).get(key);
returnelement==null?null:element.getObjectValue();
}
/**
* 写入缓存
* @param cacheName
* @param key
* @param value
*/
publicstaticvoid put(StringcacheName, Stringkey, Objectvalue) {
Element element =new Element(key,value);
getCache(cacheName).put(element);
}
/**
* 从缓存中移除
* @param cacheName
* @param key
*/
publicstaticvoid remove(StringcacheName, Stringkey) {
getCache(cacheName).remove(key);
}
/**
* 获得一个Cache,没有则创建一个。
* @param cacheName
* @return
*/
privatestatic Cache getCache(StringcacheName){
cacheManager =getCacheManager();
Cache cache =cacheManager.getCache(cacheName);
if (cache == null){
cacheManager.addCache(cacheName);
cache =cacheManager.getCache(cacheName);
cache.getCacheConfiguration().setEternal(true);
}
returncache;
}
}
顺便说下:EhcacheUtil.class.getResource("/")目录为:
Cache调用:
EhcacheUtil.put(Constants.SYSCACHE,key,value);
ObjectcacheObj = EhcacheUtil.get(Constants.SYSCACHE,key);
- EhCache运用
- ehcache的简单运用
- EHCache入门系列(三)–在Hibernate 中运用EHCache
- EHCache入门系列(三)–在Hibernate 中运用EHCache
- EHCache入门系列(三)–在Hibernate 中运用EHCache
- ehcache缓存在java 分布式的运用
- 如何知道Hibernate已经成功运用了二级缓存EhCache
- Ehcache
- Ehcache
- ehcache
- ehcache
- EHCache
- ehCache
- ehcache
- ehcache
- ehcache
- ehcache
- ehcache
- Android SDK Manager 更新代理配置 SDK下载设置教程
- visual studio 2015 update 3正式版发布
- cv::Mat function
- eclipse openwrt 交叉编译链设置
- Paxos算法(转)
- EhCache运用
- build 时候把场景加进去的时候,场景有对应的序号
- Struts2中Action接受用户输入数据
- Android 原生开发、H5、React-Native使用利弊和场景技术分享
- iOS设计模式(四) 单例模式
- 单例模式学习
- 互联网时代的社会语言学:基于SNS的文本数据挖掘
- Vim多行缩进及高级命令
- Crunch 学习(一)