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"/> |
| |
| <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.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; |
| } |
| } |
| |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2019-06-24 css 属性选择器