• 【Spring__ehcache 】ehcache简单使用


    1、配置文件

            <ehcache.version>2.6.11</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>
    
        <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
            <property name="configLocation" value="classpath:xml/ehcache-local.xml"/>
        </bean>
    

    ehcache-local.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <ehcache updateCheck="false" name="defaultCache">
        <diskStore path="../temp/ehcache"/>
        <!-- 默认缓存配置. 自动失效:最后一次访问时间间隔300秒失效,若没有访问过自创建时间600秒失效。-->
        <defaultCache maxEntriesLocalHeap="1000" eternal="false" timeToIdleSeconds="300" timeToLiveSeconds="600"
                      overflowToDisk="true" statistics="true"/>
        <cache name="cache01"
               maxElementsInMemory="1000"
               eternal="false"
               overflowToDisk="false"
               timeToIdleSeconds="60"
               timeToLiveSeconds="60"
               memoryStoreEvictionPolicy="LRU"/>
        <cache name="sysCache" maxEntriesLocalHeap="1000" eternal="true" overflowToDisk="true" statistics="true"/>
        <!-- 简单页面缓存 -->
        <cache name="pageCachingFilter" maxEntriesLocalHeap="1000" eternal="false" timeToIdleSeconds="120"
               timeToLiveSeconds="120" overflowToDisk="true" memoryStoreEvictionPolicy="LFU" statistics="true"/>
        <!-- 系统活动会话缓存 -->
        <cache name="activeSessionsCache" maxEntriesLocalHeap="10000" eternal="true" overflowToDisk="true"
               diskPersistent="true" diskExpiryThreadIntervalSeconds="600" statistics="true"/>
    </ehcache>
    

    2、CacheUtils

    SpringContextHolder

    package com.kikyo.util;
    
    import com.kikyo.listener.SpringContextHolder;
    import net.sf.ehcache.CacheManager;
    import net.sf.ehcache.Cache;
    import net.sf.ehcache.Element;
    
    public class CacheUtils {
        // private static CacheManager cacheManager = SpringContextHolder.getBean("cacheManager");//都可以
        private static CacheManager cacheManager = SpringContextHolder.getBean(CacheManager.class);
        private static final String SYS_CACHE = "cache01";
    
        public static Object get(String key) {
            return get(SYS_CACHE, key);
        }
    
        public static void put(String key, Object value) {
            put(SYS_CACHE, key, value);
        }
    
        public static Object get(String cacheName, String key) {
            Cache cache = getCache(cacheName);
            Element element = cache.get(key);
            return element == null ? null : element.getObjectValue();
        }
    
        public static void put(String cacheName, String key, Object value) {
            Element element = new Element(key, value);
            Cache cache = getCache(cacheName);
            cache.put(element);
        }
    
        public static void remove(String key) {
            remove(SYS_CACHE, key);
        }
    
        public static void remove(String cacheName, String key) {
            getCache(cacheName).remove(key);
        }
    
        private static Cache getCache(String cacheName) {
            Cache cache = cacheManager.getCache(cacheName);
            if (cache == null) {
                throw new RuntimeException("当前系统中没有定义“" + cacheName + "”这个缓存。");
            }
            return cache;
        }
    }
    
    
  • 相关阅读:
    k3 cloud套打模板中出现单元格数据为空的情况,及无法正确的选择数据源
    k3 cloud中列表字段汇总类型中设置了汇总以后没有显示出汇总值
    k3 cloud查看附件提示授予目录NetWorkService读写权限
    k3 cloud中提示总账期末结账提示过滤条件太长,请修改此过滤条件
    金蝶云k3 cloud采购入库单校验日期不通过
    C# Code First 配置(二)
    C# Azure 远程调试
    C# ABP源码详解 之 BackgroundJob,后台工作(一)
    C# 在webapi项目中配置Swagger(最新版2017)
    高并发之
  • 原文地址:https://www.cnblogs.com/kikyoqiang/p/13186144.html
Copyright © 2020-2023  润新知