public class WebContextCache
{
/** 写日志 */
private static Log logger = LogFactory.getLog(WebContextCache.class);
private static WebContextCache instance = new WebContextCache();
/**
* 初始化缓存大小
*/
private static final int CAPACITY_NUM = 200;
private Map<String, ApplicationSession> applicationMap = new ConcurrentHashMap<String, ApplicationSession>(
CAPACITY_NUM);
public static WebContextCache getInstance()
{
return instance;
}
public static void createAppSession(String id, ApplicationSession appSession)
{
getInstance().applicationMap.put(id, appSession);
if (!getInstance().applicationMap.containsKey(id))
{
logger.info(id + ":cache init failure");
}
}
public static void remoteAppSession(String id)
{
ApplicationSession appSession = getInstance().applicationMap.remove(id);
if (appSession != null)
{
appSession.clearApplicationSession();
}
}
public static ApplicationSession getAppSession(String id)
{
ApplicationSession appSession = getInstance().applicationMap.get(id);
if (appSession == null)
{
logger.info(id + ":cache space has not been inited or been removed");
appSession = new ApplicationSession();
WebContextCache.createAppSession(id, appSession);
}
return appSession;
}
}
Java代码
public class ApplicationSession
{
/**
* 默认的map初始化大小
*/
private static final int DEFAULT_MAP_SIZE = 100;
private final Map cache = new HashMap(DEFAULT_MAP_SIZE);
public Object getFromCache(Object key)
{
synchronized (cache)
{
return cache.get(key);
}
}
public void putToCache(Object key, Object value)
{
synchronized (cache)
{
cache.put(key, value);
}
}
public void removeAllCache()
{
synchronized (cache)
{
cache.clear();
}
}
public void clearApplicationSession()
{
cache.clear();
}
}
Java代码
public abstract class ActionSupport extends Action
{
protected void putToCache(HttpServletRequest request, Object key, Object value)
{
ApplicationSession appSession = WebContextCache.getAppSession(request.getSession(true)
.getId());
appSession.putToCache(key, value);
}
protected Object getObjectFromCache(HttpServletRequest request, Object key)
{
ApplicationSession appSession = WebContextCache.getAppSession(request.getSession(true)
.getId());
return appSession.getFromCache(key);
}
}
分享到:
相关推荐
Ehcache是一款广泛使用的开源Java缓存框架,尤其在处理大量数据时,它可以显著提升应用程序的效率。本文将深入探讨Ehcache在实际应用中的实例。 一、Ehcache简介 Ehcache是由Terracotta公司开发的高性能、易用的...
**Java缓存技术深入了解** Java缓存技术是提高应用程序性能的关键技术之一,它通过存储经常访问的数据,减少了对数据库或其他慢速数据源的依赖,从而加快了数据的获取速度。本篇文章将深入探讨Java中的缓存实现,...
Java缓存技术在企业级开发中扮演着至关重要的角色,主要目的是提高系统性能,减少不必要的计算和I/O操作。本文将深入探讨缓存的概念、作用、类型以及在Java环境下的应用。 缓存,简单来说,就是高速缓冲存储器,它...
### JAVA缓存入门文档:EHCache #### 一、EHCache简介 EHCache 是一个纯 Java 缓存实现,主要用于提高应用程序性能。它通过在内存中缓存数据来减少对数据库或其他外部系统的调用次数,从而加快应用响应速度。...
本文将重点讨论Java缓存的基本概念、常用库及其工作原理。 首先,理解缓存的基本概念是非常重要的。缓存是一种存储技术,它保存最近访问的数据副本,以便下次请求相同数据时能够快速响应。这种技术基于“局部性原理...
Java缓存技术是提高应用程序性能的关键工具,尤其是在处理大量数据时。它通过存储频繁访问的数据在内存中,避免了重复的数据库查询,显著提升了响应速度。在这个“Java缓存技术的使用实例”中,我们将深入探讨Java...
使用java缓存技术使网站更流畅,减少对数据库的访问,节省资源。
本文将深入探讨“java缓存数据”这一主题,结合提供的标签“源码”和“工具”,我们将从源代码层面和常用工具角度来解析Java缓存的相关知识。 首先,Java缓存数据的基本原理是将频繁访问的数据存储在内存中,避免...
Java 缓存工具 SimpleCache 是一个用于在 Java 应用程序中实现高效数据存储和检索的框架。在高并发和大数据量的场景下,缓存是提高系统性能的关键技术之一。SimpleCache 提供了一种简洁的方式来管理短期数据,避免了...
基于java的开发源码-Java缓存工具 SimpleCache.zip 基于java的开发源码-Java缓存工具 SimpleCache.zip 基于java的开发源码-Java缓存工具 SimpleCache.zip 基于java的开发源码-Java缓存工具 SimpleCache.zip 基于java...
基于java的开发源码-Ehcache Java 缓存框架.zip 基于java的开发源码-Ehcache Java 缓存框架.zip 基于java的开发源码-Ehcache Java 缓存框架.zip 基于java的开发源码-Ehcache Java 缓存框架.zip 基于java的开发源码-...
深入理解Java缓存技术可以帮助我们设计出更加高效、响应迅速的系统。在这个主题下,我们将探讨Java缓存的基本概念、常用框架以及实现策略。 首先,让我们了解什么是缓存。缓存是一种存储技术,它允许我们在短时间内...
### Java缓存技术详解 #### 一、引言 随着计算机技术的快速发展,Java作为一种流行的编程语言,在多个领域内得到广泛应用。特别是在互联网开发领域,Java因其卓越的通用性、高效性、平台移植性和安全性,成为了不...
谷歌推荐磁盘缓存 DiskLruCache.java 缓存类 主要用于安卓图片磁盘缓存,放入项目中修改包名直接调用即可.
下面我们将深入探讨Java缓存技术,特别是Ehcache的使用。 首先,理解缓存的基本原理至关重要。缓存是一种存储技术,用于临时存储最近或最常访问的数据,以便快速访问。在Java应用中,缓存可以减少对远程服务(如...
本文将深入探讨“java缓存代码,tomcat JVM配置”这一主题,包括Java缓存的实现方法以及如何对Tomcat服务器进行JVM配置和连接池设定,以提升系统效率。 首先,我们来看Java缓存代码。在Java中,缓存是一种常见的...
基于java的开发源码-ehcache(Java缓存框架 EhCache).zip 基于java的开发源码-ehcache(Java缓存框架 EhCache).zip 基于java的开发源码-ehcache(Java缓存框架 EhCache).zip 基于java的开发源码-ehcache(Java缓存框架 ...
Java 缓存机制是提高...综上所述,Java缓存机制涉及到声明式缓存的使用、缓存抽象的理解以及Web开发中的会话管理、Cookie和SSO实现。在实际应用中,还需要考虑SEO策略,合理利用各种技术来提升用户体验和系统的性能。