`

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使用详解,HIBERNATE缓冲

    Ehcache使用

    Ehcache使用: CacheManager主要的缓存管理类,一般一个应用为一个实例,如下 CacheManager.create();也可以使用new CacheManager的方式创建 默认的配置文件为ehcache.xml文件,也可以使用不同的配置: ...

    EhCache使用

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

    Ehcache使用手册

    Ehcache API,页面缓存,分布式缓存。

    ehcache使用详解

    包括配置、原理讲解及使用示例。简洁的文档

    EHCache使用手册

    EHCache使用手册,Hibernate默认的缓存

    ehcache使用,以及集群配置

    此为ehcache的使用以及集群的使用,具体需要两台机子,将ehcache 的hostName替换相应的ip即可

    EHCache的使用随记

    NULL 博文链接:https://huntt.iteye.com/blog/2058937

    ehCache 使用例子

    为了写这个例子我从网上找了好几天的资料,终于看到的效果,里面有非分布式的例子,有分布式例子(包括 rmi,jgroups tcp/udp 的分布式调用方式)。

    ehcache例子

    ehcache使用例子,maven项目。

    ehcache用法

    EHCache使用SimplePageCachingFilter类实现Filter缓存。该类继承自CachingFilter,有默认产生cache key的calculateKey()方法,该方法使用HTTP请求的URI和查询条件来组成key。也可以自己实现一个Filter,同样继承...

    Ehcache使用文档

    hibernate二级缓存的使用,快速使用手册,一学就会。Ehcache是一个快速的、轻量级的、易于使用的、进程内的缓存。它支持read-only 和read/write 缓存,内存和磁盘缓存。是一个非常轻量级的缓存实现

    ehcache配置使用详解

    ehcache配置使用详解,里面有具体的例子

    ehcache 缓存技术

    java EHCache使用,Hibernate缓存 收集整理

    SpringBoot中使用Ehcache的详细教程

    EhCache 是一个纯 Java 的进程内缓存框架,具有快速、精干等特点,是 Hibernate 中默认的 CacheProvider。这篇文章主要介绍了SpringBoot中使用Ehcache的相关知识,需要的朋友可以参考下

    cache/ehcache缓存使用

    cache、ehcache等缓存使用,实现存对象读对象等等

    ehcache3-samples, 关于使用 Ehcache 3,一些示例/教程.zip

    ehcache3-samples, 关于使用 Ehcache 3,一些示例/教程 Ehcache示例这里知识库包含有关 Ehcache 3用法的示例和教程。示例'basic'演示 Ehcache 3的基本配置和用法'集群'- 演示如何在Terracotta服务器上使用分布式缓存...

    ehcache监控工具ehcache-monitor-kit-1.0.3

    1.解压缩到目录下,复制ehcache-monitor-kit-1.0.0\lib\ehcache-probe-1.0.0.jar包到application的web-inf/lib目录下 2.将以下配置copy的ehcache.xml文件的ehcache标签中,注:上述链接中说的配置少写了个probe包名...

    Spring与ehcache结合使用

    Spring与ehcache结合使用,本地缓存的实现

Global site tag (gtag.js) - Google Analytics