ehcache.xml
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd">
<diskStore path="java.io.tmpdir"/>
<cacheManagerEventListenerFactory class="com.bb2c.common.cache.CacheListener"/>
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="300"
timeToLiveSeconds="120"
overflowToDisk="true"
diskSpoolBufferSizeMB="30"
maxElementsOnDisk="10000000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"
/>
<cache name="BB2CParamCache" maxElementsInMemory="10000" eternal="true"
overflowToDisk="false" timeToIdleSeconds="0" timeToLiveSeconds="0"
memoryStoreEvictionPolicy="LRU" />
</ehcache>
public class BB2CCacheManager {
private static final Cache cache;
static {
CacheManager manager = new CacheManager();
cache = manager.getCache("BB2CParamCache");
}
public static void addCache(String type, List list) {
Element e = new Element(type, list);
cache.put(e);
}
public static List getParamList(String type) {
Element e = cache.get(type);
List list = (List) e.getValue();
return list;
}
}
public class StartupListener extends ContextLoaderListener implements
ServletContextListener {
private static Log log = LogFactory.getLog(StartupListener.class);
public void contextInitialized(ServletContextEvent event) {
ServletContext servletContext = event.getServletContext();
setupContext(servletContext);
}
public static void setupContext(ServletContext context) {
ApplicationContext applicationContext = WebApplicationContextUtils
.getRequiredWebApplicationContext(context);
if (log.isDebugEnabled()) {
log.debug("后台管理系统开始启动,并开始加载参数列表............. [OK]");
}
IParamService paramService = (IParamService) applicationContext
.getBean(Constants.PARAM_BEAN);
List<ParamSetObj> newList = new ArrayList<ParamSetObj>();
String type = null;
try {
// 加载参数列表
List list = paramService.queryParamListForCache();
// 将参数列表分类放入缓存
for (int i = 0; i < list.size(); i++) {
ParamSetObj param = (ParamSetObj) list.get(i);
if (i == 0) {
type = param.getParamType();
}
if (!param.getParamType().equals(type)) {
BB2CCacheManager.addCache(type, newList);
type = param.getParamType();
newList = new ArrayList<ParamSetObj>();
newList.add(param);
} else {
newList.add(param);
}
if(i==list.size()-1){
BB2CCacheManager.addCache(type, newList);
}
}
} catch (Exception e) {
e.printStackTrace();
log.error("加载参数列表错误!....................[fail]");
}
if (log.isDebugEnabled()) {
log.debug("后台管理系统启动完毕,参数列别已近加载完毕............. [OK]");
}
}
}
public class CacheListener extends CacheManagerEventListenerFactory {
public CacheManagerEventListener createCacheManagerEventListener(
Properties properties) {
return new CMEL();
}
}
class CMEL implements CacheManagerEventListener {
public void dispose() throws CacheException {
}
public Status getStatus() {
return null;
}
public void init() throws CacheException {
}
public void notifyCacheAdded(String cacheName) {
System.out.println("Cache [" + cacheName + "] Added");
}
public void notifyCacheRemoved(String cacheName) {
System.out.println("Cache [" + cacheName + "] Deleted");
}
}
分享到:
相关推荐
在ASP.NET中,Cache缓存是一种重要的性能优化机制,它允许开发者将经常访问的数据存储在内存中,减少对数据库或其他资源的访问,从而提高Web应用程序的响应速度。 **Cache缓存的基本概念** Cache是ASP.NET应用程序...
【Spring Boot 使用 Spring Cache 缓存与数据落地到 Redis】\n\n在Spring Boot应用中,Spring Cache是一个强大的工具,可以极大地提升应用的性能,通过缓存非计算性或者昂贵的计算结果。Spring Cache抽象了缓存管理...
在Spring Boot应用中,Spring Cache是一个强大的工具,用于在应用程序中实现缓存抽象,它可以减少对数据库或远程服务的重复调用,从而提高性能。在本篇文档中,我们将探讨如何使用Spring Cache来缓存数据,并结合...
本文将深入探讨Cache缓存数据的原理和实现方法,以及如何有效地管理并删除缓存,以确保高效且响应迅速的应用服务。 首先,我们需要理解什么是缓存。缓存是一种存储技术,用于临时存储经常访问的数据,以减少对主...
### 如何用PageCache缓存技巧加速你的网站 #### 一、引言 随着互联网技术的发展,动态网站逐渐成为主流。然而,动态网站虽然具备更好的交互性和灵活性,但同时也带来了性能上的挑战。为了提高网站的加载速度并减轻...
在这个“SpringCache缓存初探共5页.pdf.zip”压缩包中,很可能是对SpringCache的基础知识进行了简要介绍。虽然文件名暗示内容可能只有5页,但我们可以深入探讨SpringCache的一些核心概念和技术细节。 首先,Spring...
**Wordpress mu wp-cache缓存模块详解** 在WordPress的多用户环境(WordPress MU,现在称为WPMU或WordPress Multisite)中,性能优化是非常重要的,因为多个网站在同一平台上运行可能会对服务器造成巨大压力。`wp-...
**Cache缓存的基本概念** Cache缓存是一种存储技术,它被设计用来缓解计算机系统中处理器(CPU)与主存储器之间速度不匹配的问题。随着CPU技术的快速发展,其运算速度远超主存的读写速度,导致CPU经常等待数据从...
**Cache缓存技术** Cache,又称为高速缓冲存储器,是计算机系统中为了提升处理器(CPU)性能而设计的关键组件。它的主要目的是解决CPU运算速度与主存储器(Memory)速度之间的不匹配问题。随着CPU技术的发展,...
ARM9指令Cache缓存模块是嵌入式系统设计中的关键组成部分,主要负责加速处理器对内存中指令的访问。在现代微处理器中,Cache缓存扮演着提高系统性能的关键角色,通过减少处理器与主内存之间的数据交换时间来提升系统...
twitter cache缓存架构图.png
**CACHE缓存服务详解** 在IT行业中,CACHE缓存服务是一种高效的数据存储机制,它能够显著提高应用程序的性能,减少对后端数据库的访问压力。本文将深入探讨CACHE缓存服务的概念、工作原理以及在实际应用中的作用,...
WebSettings提供了setCacheMode()方法来设置缓存模式,比如LOAD_CACHE_ONLY,这样在无网络时,WebView会优先从本地缓存加载内容。 ```java settings.setCacheMode(WebSettings.LOAD_CACHE_ONLY); // 仅使用缓存 ```...
Spring Cache是一个抽象层,它允许开发者在不关注具体缓存实现的情况下,轻松地在应用程序中添加缓存功能。本篇文章将详细探讨如何通过key值更新Spring Cache中的指定缓存,以及相关的缓存管理策略。 首先,让我们...
Session缓存与Cache缓存的区别,可以参考如下的几点: 1、最大的区别是Cache提供缓存依赖来更新数据,而Session只能依靠定义的缓存时间来判断缓存数据是否有效。 2、即使应用程序终止,只要Cache.Add方法中定义的...
1. proxy_cache_path: 这是用于定义缓存文件存储路径的关键配置项,其中可以指定缓存根目录、缓存目录层级、共享内存区域、缓存最大空间、缓存文件的临时路径等参数。 - /home/nginx/proxy_cache/cache:设置缓存...
.NET Core中的MemoryCache是一种用于在应用程序内存中存储数据的缓存机制,以提高数据访问速度和应用程序性能。MemoryCache属于.NET Core的内置缓存机制之一,广泛应用于各种需要快速数据存取的场景。本篇文章主要...
Spring Cache 是 Spring 框架从 3.1 版本开始引入的一个强大特性,它提供了一种透明化的缓存机制,允许开发者在不修改原有业务代码的基础上,轻松地为应用程序添加缓存功能。这个抽象层使得我们可以使用不同的缓存...
**Cache(数据缓存)详解** Cache,也称为数据缓存,是一种提高应用程序性能的关键技术。它通过存储经常访问的数据,使得数据的读取速度更快,从而减轻了对底层资源(如数据库或网络)的压力。在本文中,我们将深入...
SpringBoot整合GuavaCache缓存过程解析 SpringBoot是一款流行的Java框架,提供了许多便捷的功能来简化开发过程。其中,缓存机制是SpringBoot中的一个重要组件,可以帮助提高应用程序的性能和响应速度。GuavaCache是...