- 浏览: 139034 次
- 性别:
- 来自: 北京
文章分类
最新评论
一、 配置文件ehcache.xml
<ehcache>
<diskStore path="java.io.tmpdir"/>
<defaultCache
maxElementsInMemory="10000"
eternal="false"
overflowToDisk="true"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
diskPersistent="true"/>
<cache name="resourceCache"
maxElementsInMemory="10000"
eternal="false"
overflowToDisk="true"/>
</ehcache>
二、 配置Bean
<beans:bean id="resourceCache" class="com.wanmei.system.security.cache.ResourceCache">
<beans:property name="cache">
<beans:bean class="org.springframework.cache.ehcache.EhCacheFactoryBean" autowire="byName">
<beans:property name="cacheManager" ref="cacheManager"/>
<beans:property name="cacheName" value="resourceCache"/>
</beans:bean>
</beans:property>
</beans:bean>
三、 对象
public class ResourceCache {
private Cache cache;
public void setCache(Cache cache) {
this.cache = cache;
}
public Cache getCache() {
return this.cache;
}
public Object getAuthorityFromCache(String resString) {
Element element = null;
try {
element = cache.get(resString);
} catch (CacheException cacheException) {
throw new DataRetrievalFailureException("Cache failure: " + cacheException.getMessage(), cacheException);
}
if (element == null) {
return null;
} else {
return element.getValue();
}
}
public void putAuthorityInCache(Object obj) {
Element element = new Element(key, obj);
if (logger.isDebugEnabled()) {
logger.debug("Cache put: " + element.getKey());
}
this.cache.put(element);
}
public void removeAuthorityFromCache(String resString) {
this.cache.remove(resString);
}
private List<String> getResourcesByType(String type) {
List resources;
List<String> resclist = new ArrayList<String>();
try {
resources = this.cache.getKeys();
} catch (IllegalStateException e) {
throw new IllegalStateException(e.getMessage(), e);
} catch (CacheException e) {
throw new UnsupportedOperationException(e.getMessage(), e);
}
for (Iterator iter = resources.iterator(); iter.hasNext();) {
String resString = (String) iter.next();
ResourceDetails resourceDetails = getAuthorityFromCache(resString);
if (resourceDetails != null && resourceDetails.getResourceType().equals(type)) {
resclist.add(resString);
}
}
return resclist;
}
}
<ehcache>
<diskStore path="java.io.tmpdir"/>
<defaultCache
maxElementsInMemory="10000"
eternal="false"
overflowToDisk="true"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
diskPersistent="true"/>
<cache name="resourceCache"
maxElementsInMemory="10000"
eternal="false"
overflowToDisk="true"/>
</ehcache>
二、 配置Bean
<beans:bean id="resourceCache" class="com.wanmei.system.security.cache.ResourceCache">
<beans:property name="cache">
<beans:bean class="org.springframework.cache.ehcache.EhCacheFactoryBean" autowire="byName">
<beans:property name="cacheManager" ref="cacheManager"/>
<beans:property name="cacheName" value="resourceCache"/>
</beans:bean>
</beans:property>
</beans:bean>
三、 对象
public class ResourceCache {
private Cache cache;
public void setCache(Cache cache) {
this.cache = cache;
}
public Cache getCache() {
return this.cache;
}
public Object getAuthorityFromCache(String resString) {
Element element = null;
try {
element = cache.get(resString);
} catch (CacheException cacheException) {
throw new DataRetrievalFailureException("Cache failure: " + cacheException.getMessage(), cacheException);
}
if (element == null) {
return null;
} else {
return element.getValue();
}
}
public void putAuthorityInCache(Object obj) {
Element element = new Element(key, obj);
if (logger.isDebugEnabled()) {
logger.debug("Cache put: " + element.getKey());
}
this.cache.put(element);
}
public void removeAuthorityFromCache(String resString) {
this.cache.remove(resString);
}
private List<String> getResourcesByType(String type) {
List resources;
List<String> resclist = new ArrayList<String>();
try {
resources = this.cache.getKeys();
} catch (IllegalStateException e) {
throw new IllegalStateException(e.getMessage(), e);
} catch (CacheException e) {
throw new UnsupportedOperationException(e.getMessage(), e);
}
for (Iterator iter = resources.iterator(); iter.hasNext();) {
String resString = (String) iter.next();
ResourceDetails resourceDetails = getAuthorityFromCache(resString);
if (resourceDetails != null && resourceDetails.getResourceType().equals(type)) {
resclist.add(resString);
}
}
return resclist;
}
}
发表评论
-
使用memcached进行并发控制(转)
2015-12-29 14:39 888版权声明:本文为博主 ... -
Lock和Synchronized的不同
2014-10-24 15:46 772在 Java 中线程的状态可以分为:新建(New),运行状 ... -
ClassLoader加载流程
2014-04-16 09:59 692[b]当运行一个程序的时候,JVM启动, 运行bootstar ... -
springmvc请求接收参数的几种方法(转载)
2014-04-14 13:37 1549通过@PathVariabl注解获取路径中传递参数 JAVA ... -
JDK里的设计模式
2014-03-10 09:52 624适配器模式: 用来把一个接口转化成另一个接口。 java ... -
include与jsp:include区别
2014-02-28 15:03 589在jsp中include有两种形式,分别是 <%@ i ... -
DBCP的配置参数
2014-02-25 15:51 743tomcatde DHCP的配置 <Resource d ... -
java 时间处理的工具类(转)
2014-01-27 15:13 657import java.text.ParseException ... -
log4j
2014-01-17 13:56 421public Logger m_log = null; ... -
关于java Date和时区的问题
2013-12-18 11:55 842java2平台为我们提供了丰富的日期时间API。如java.u ... -
hessian异常总结
2013-12-12 17:53 1283版本不兼容 com.caucho.hessian.io.Hes ... -
java异常
2013-09-06 12:01 602java.sql.SQLException: Incorrec ... -
汉字转码的java实现
2013-08-05 17:26 1029package common; import java.ut ... -
验证邮件的有效性
2013-07-30 14:25 1140public static boolean checkEma ... -
优化Servlet配置
2013-04-09 10:31 645[b] 以往每添加一个Servlet就要在web. ... -
纯hessian的部署(转)
2012-11-06 17:44 837Web 服务是通过在 Web 服务器上部署 Servlet 来 ... -
struts2上传文件活动文件名、类型
2012-05-16 08:45 950public class FileUpload { ... -
struts2乱码
2012-05-14 17:36 0Struts2.1.6 StrutsPrepareAndExe ... -
解决struts2过滤器冲突问题
2012-04-27 13:40 0struts2使用FilterDispatcher进行url过 ... -
cron表达式
2012-03-14 15:02 874所在组的定时任务用的quartz,是我第一个用的,今天有同事用 ...
相关推荐
**Ehcache 使用详解** Ehcache 是一个广泛使用的开源Java缓存库,它提供了内存和磁盘存储的二级缓存机制,以提高...在阅读`ehcache使用文档e.doc`后,你将对Ehcache有更深入的理解,并能自如地将其应用到你的项目中。
EhCache使用详解,HIBERNATE缓冲
每次需要shiro做权限控制, Realm的授权方法就会被调用, 查询数据库重新完成授权! 问题: 性能开销比较大 解决: 对用户授权,只进行一次 查询,查询后,将用户授权信息放入缓存中,以后需要授权时,直接从缓存...
**Ehcache 使用详解与集群配置** Ehcache 是一个广泛使用的开源Java缓存系统,它提供了内存和磁盘存储,以及对缓存数据的分布式处理能力。在Java应用程序中,Ehcache能够显著提高性能,减少数据库负载,通过缓存...
### Ehcache 使用详解 #### 一、概述 Ehcache 是一款开源的、纯 Java 缓存框架,它能够提供高性能、低延迟的数据缓存功能。Ehcache 的设计目标是提高应用程序性能,通过减少对数据库或其他外部系统的依赖来达到这...
默认情况下,ehCache使用LRU策略。 5. **缓存过期策略**:通过设置`<cache>`元素的`timeToLiveSeconds`和`timeToIdleSeconds`属性,可以控制缓存在创建后多长时间内有效或者在未被访问多长时间后过期。 6. **...
### Ehcache使用文档知识点解析 #### 一、Ehcache简介与特点 **Ehcache** 是一款高性能、轻量级且易于使用的进程内缓存解决方案。它支持多种缓存模式,包括只读(read-only)和读写(read/write),并且能够存储...
通过这些示例,我们可以学习如何设置Ehcache的分布式特性,例如使用Terracotta服务器进行集群缓存,以及如何处理分布式环境下的缓存一致性问题。 总结来说,Ehcache的监控涉及了多个方面,包括但不限于使用JMX、Web...
**EHCache的使用随记** EHCache是一款广泛应用于Java环境中的高效、易用且功能丰富的内存缓存系统。它能够显著提升应用性能,通过将常用数据存储在内存中,避免了反复从数据库读取,降低了I/O延迟。本文将探讨...
ehcache所需jar包 cglib-nodep-2.2.jar ehcache-core-2.5.2.jar ehcache-spring-annotations-1.2.0.jar guava-13.0.1.jar ehcache-terracotta-2.5.2.jar slf4j-api-1.6.1.jar slf4j-log4j12-1.6.1.jar terracotta-...
Ehcache 使用 XML 配置文件进行初始化设置,包括缓存的大小、过期策略、缓存策略等。例如: ```xml maxEntriesLocalHeap="10000" eternal="false" timeToIdleSeconds="120" timeToLiveSeconds="120"> ``...
### EHCache的使用详解 #### 一、EHCache概述与特点 EHCache 是一款非常流行的开源缓存组件,由 SourceForge 提供支持。作为一个纯 Java 实现的高性能缓存库,EHCache 在处理高并发场景下表现优异。其主要特点包括...
1. **内存管理**:Ehcache 使用LRU(Least Recently Used)策略来管理缓存中的对象,确保最常用的项保持在内存中。此外,它还提供了大小限制,以防止缓存占用过多内存。 2. **磁盘持久化**:当内存中的缓存达到其...
本文将深入探讨EHCache的配置及其主要元素,帮助开发者更好地理解和使用EHCache。 首先,EHCache的配置文件通常命名为`ehcache.xml`,但也可以根据需求自定义。配置文件包含了对缓存行为的详细设定,这些设定主要由...
在分布式环境中,Ehcache使用Terracotta服务器进行集群管理,确保缓存的一致性和高可用性。 Terracotta服务器通过TCP/IP协议协调各个节点,确保数据同步,并提供故障转移功能,当某个节点出现问题时,其他节点可以...
下面是一些基础的Ehcache使用示例: ```java // 创建CacheManager实例 CacheManager cacheManager = CacheManager.create(); // 或者通过指定配置文件路径创建 cacheManager = CacheManager.create("/config/...
1. 高性能:Ehcache使用内存作为主要存储,访问速度快。 2. 可配置性:可以设置缓存策略,如大小限制、过期时间等。 3. 分布式:通过Terracotta服务器,Ehcache支持多节点的分布式缓存。 二、Ehcache与Spring整合 ...
- **TestEhcache.zip**:这个项目可能是一个简单的Ehcache使用示例,演示了如何创建和操作缓存,包括缓存的存取、更新、删除等基本操作。通过阅读源代码和运行程序,可以直观地理解Ehcache的基本功能。 - **...
1. **内存管理**:Ehcache使用内存存储来快速访问常用数据,以减少对持久存储(如数据库)的依赖。它通过分区和缓存策略(如LRU、LFU)来管理内存中的对象,确保高效使用有限的内存资源。 2. **分布式缓存**:...