`

Ehcache的使用

    博客分类:
  • java
 
阅读更多
一、 配置文件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使用详解

    **Ehcache 使用详解** Ehcache 是一个广泛使用的开源Java缓存库,它提供了内存和磁盘存储的二级缓存机制,以提高...在阅读`ehcache使用文档e.doc`后,你将对Ehcache有更深入的理解,并能自如地将其应用到你的项目中。

    EhCache使用详解

    EhCache使用详解,HIBERNATE缓冲

    EhCache使用

    每次需要shiro做权限控制, Realm的授权方法就会被调用, 查询数据库重新完成授权! 问题: 性能开销比较大 解决: 对用户授权,只进行一次 查询,查询后,将用户授权信息放入缓存中,以后需要授权时,直接从缓存...

    ehcache使用,以及集群配置

    **Ehcache 使用详解与集群配置** Ehcache 是一个广泛使用的开源Java缓存系统,它提供了内存和磁盘存储,以及对缓存数据的分布式处理能力。在Java应用程序中,Ehcache能够显著提高性能,减少数据库负载,通过缓存...

    Ehcache使用

    ### Ehcache 使用详解 #### 一、概述 Ehcache 是一款开源的、纯 Java 缓存框架,它能够提供高性能、低延迟的数据缓存功能。Ehcache 的设计目标是提高应用程序性能,通过减少对数据库或其他外部系统的依赖来达到这...

    ehCache 使用例子

    默认情况下,ehCache使用LRU策略。 5. **缓存过期策略**:通过设置`&lt;cache&gt;`元素的`timeToLiveSeconds`和`timeToIdleSeconds`属性,可以控制缓存在创建后多长时间内有效或者在未被访问多长时间后过期。 6. **...

    Ehcache使用文档

    ### Ehcache使用文档知识点解析 #### 一、Ehcache简介与特点 **Ehcache** 是一款高性能、轻量级且易于使用的进程内缓存解决方案。它支持多种缓存模式,包括只读(read-only)和读写(read/write),并且能够存储...

    Ehcache 简单的监控

    通过这些示例,我们可以学习如何设置Ehcache的分布式特性,例如使用Terracotta服务器进行集群缓存,以及如何处理分布式环境下的缓存一致性问题。 总结来说,Ehcache的监控涉及了多个方面,包括但不限于使用JMX、Web...

    EHCache的使用随记

    **EHCache的使用随记** EHCache是一款广泛应用于Java环境中的高效、易用且功能丰富的内存缓存系统。它能够显著提升应用性能,通过将常用数据存储在内存中,避免了反复从数据库读取,降低了I/O延迟。本文将探讨...

    ehcache所需jar包

    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

    Ehcache 使用 XML 配置文件进行初始化设置,包括缓存的大小、过期策略、缓存策略等。例如: ```xml maxEntriesLocalHeap="10000" eternal="false" timeToIdleSeconds="120" timeToLiveSeconds="120"&gt; ``...

    EHCache的使用

    ### EHCache的使用详解 #### 一、EHCache概述与特点 EHCache 是一款非常流行的开源缓存组件,由 SourceForge 提供支持。作为一个纯 Java 实现的高性能缓存库,EHCache 在处理高并发场景下表现优异。其主要特点包括...

    ehcache2.6.5.rar

    1. **内存管理**:Ehcache 使用LRU(Least Recently Used)策略来管理缓存中的对象,确保最常用的项保持在内存中。此外,它还提供了大小限制,以防止缓存占用过多内存。 2. **磁盘持久化**:当内存中的缓存达到其...

    EHCache使用手册

    本文将深入探讨EHCache的配置及其主要元素,帮助开发者更好地理解和使用EHCache。 首先,EHCache的配置文件通常命名为`ehcache.xml`,但也可以根据需求自定义。配置文件包含了对缓存行为的详细设定,这些设定主要由...

    ehcache缓存依赖的jar

    在分布式环境中,Ehcache使用Terracotta服务器进行集群管理,确保缓存的一致性和高可用性。 Terracotta服务器通过TCP/IP协议协调各个节点,确保数据同步,并提供故障转移功能,当某个节点出现问题时,其他节点可以...

    Ehcache 整合Spring 使用页面、对象缓存

    下面是一些基础的Ehcache使用示例: ```java // 创建CacheManager实例 CacheManager cacheManager = CacheManager.create(); // 或者通过指定配置文件路径创建 cacheManager = CacheManager.create("/config/...

    Ehcache整合Spring使用页面、对象缓存

    1. 高性能:Ehcache使用内存作为主要存储,访问速度快。 2. 可配置性:可以设置缓存策略,如大小限制、过期时间等。 3. 分布式:通过Terracotta服务器,Ehcache支持多节点的分布式缓存。 二、Ehcache与Spring整合 ...

    ehcache的功能实现

    - **TestEhcache.zip**:这个项目可能是一个简单的Ehcache使用示例,演示了如何创建和操作缓存,包括缓存的存取、更新、删除等基本操作。通过阅读源代码和运行程序,可以直观地理解Ehcache的基本功能。 - **...

    ehcache 2.10.1

    1. **内存管理**:Ehcache使用内存存储来快速访问常用数据,以减少对持久存储(如数据库)的依赖。它通过分区和缓存策略(如LRU、LFU)来管理内存中的对象,确保高效使用有限的内存资源。 2. **分布式缓存**:...

Global site tag (gtag.js) - Google Analytics