`
江金鸿
  • 浏览: 27824 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

OSCache工具类

    博客分类:
  • java
 
阅读更多

<% @ taglib uri = " oscache "  prefix = " cache " %>

< cache:flush group = " device_types "  scope = " application "   />
但是有时需要在java代码中刷新缓存,以下这个OSCacheUtil类可以工作,但是只能在webwork环境内调用:

import javax.servlet.jsp.PageContext;

import org.apache.log4j.Logger;
import com.opensymphony.oscache.base.Cache;
import com.opensymphony.oscache.web.ServletCacheAdministrator;
import com.opensymphony.webwork.ServletActionContext;

/**
 * osCache缓存工具类.
 * 只能在webwork环境内调用
 *
 * <p>Copyright: Copyright (c) 2005</p>
 * <p>Company: </p>
 * 
@author 杨杰荣
 * 
@version 1.0
 
*/

public class OSCacheUtil
{
  
private static final Logger log = Logger.getLogger( OSCacheUtil.class );

  
public static final int ALL_SCOPE = 0;
  
public static final int SESSION_SCOPE = PageContext.SESSION_SCOPE;
  
public static final int APPLICATION_SCOPE = PageContext.APPLICATION_SCOPE;

  
private static ServletCacheAdministrator admin = null;

  
private OSCacheUtil()
  
{
  }


  
/**
   * 刷新osCache组
   * 
@param group Cache组名
   * 
@param cacheScope Cache范围,只能是SESSION_SCOPE或APPLICATION_SCOPE
   
*/

  
public static void flushGroup( String group, int cacheScope )
  
{
    initCacheAdmin();

    
if ( cacheScope == SESSION_SCOPE || cacheScope == APPLICATION_SCOPE )
    
{
      Cache cache 
= admin.getCache( ServletActionContext.getRequest(),
                                    cacheScope );
      cache.flushGroup( group );
    }

    
else
    
{
      log.warn( 
"A cache group was specified for flushing, but the scope wasn't supplied or was invalid" );
    }

  }


  
/**
   * 刷新osCache中的某个key'
   * 
@param key String
   * 
@param cacheScope Cache范围,只能是SESSION_SCOPE或APPLICATION_SCOPE
   
*/

  
public static void flushKey( String key, int cacheScope )
  
{
    initCacheAdmin();

    
if ( cacheScope == SESSION_SCOPE || cacheScope == APPLICATION_SCOPE )
    
{
      String actualKey 
= admin.generateEntryKey(
          key, ServletActionContext.getRequest(), cacheScope, 
null );

      Cache cache 
= admin.getCache( ServletActionContext.getRequest(), cacheScope );
      cache.flushEntry( actualKey );
    }

    
else
    
{
      log.warn( 
"A cache key was specified for flushing, but the scope wasn't supplied or was invalid" );
    }

  }


  
/**
   * 刷新所有的osCache
   * 
@param cacheScope Cache范围,可以是SESSION_SCOPE,APPLICATION_SCOPE,ALL_SCOPE
   
*/

  
public static void flushAll( int cacheScope )
  
{
    initCacheAdmin();

    
if ( cacheScope == SESSION_SCOPE || cacheScope == APPLICATION_SCOPE )
    
{
      admin.setFlushTime( cacheScope );
    }

    
else
    
{
      admin.flushAll();
    }

  }



  
private static void initCacheAdmin()
  
{
    
if ( admin == null )
    
{
      admin 
= ServletCacheAdministrator.getInstance( ServletActionContext.
          getServletContext() );
    }

  }

官网http://www.opensymphony.com/oscache/api/
分享到:
评论

相关推荐

    oscache缓存

    在提供的压缩包中,`oscache-2.4.1.jar`是osCache的二进制库文件,包含了所有必要的类和资源,可以直接引入到Java项目中使用。`docs`目录可能包含osCache的API文档,帮助开发者了解和使用各个类和方法。`src`目录...

    oscache缓存配置

    在Java项目中,通常将其添加到项目的类路径(classpath)中,以便程序能够找到并使用osCache的相关类。 接着,我们需要配置osCache的行为,这通常通过oscache.properties文件实现。这个文件定义了缓存的各种参数,...

    OSCache需要的包

    `oscache-2.1.jar` 是OSCache的核心库文件,包含了所有必要的类和资源,供Java应用程序在运行时加载和使用OSCache服务。这个版本号(2.1)表示这是一个特定的OSCache发行版,不同的版本可能有性能优化、新特性和错误...

    oscache详细配置文档

    2. 将解压后的 `oscache.jar` 文件添加到项目的类路径中。 3. 按照上述方法配置 `web.xml` 文件,启用 `CacheFilter`。 4. 如果需要,根据应用需求调整 `oscache.properties` 文件中的配置参数。 OSCache 还支持...

    OSCache配置说明文档

    然后,将其添加到项目的类路径中,可以通过Maven或Gradle等构建工具进行依赖管理。 5.2 全局缓存 全局缓存允许在整个应用程序范围内共享缓存,提高数据访问效率。通过配置CacheFilter,可以拦截所有HTTP请求并执行...

    oscache-2.4.1-full

    - `oscache-2.4.1.jar`:这是OSCache的核心库文件,包含了所有必要的类和资源,可以被Web应用直接引用。 - `readme.txt`:包含了关于如何安装、配置和使用OSCache的指南,以及可能的变更和注意事项。 - `...

    oscache处理

    - 配置osCache插件:首先需要将osCache的jar包添加到项目类路径中,然后在struts.xml配置文件中引入osCache拦截器,并配置相应的拦截规则。 2. **iBatis与osCache**: - iBatis是一个轻量级的持久层框架,它允许...

    oscache-2.2jar包

    1. **oscache-2.2-rc.jar**:这是osCache的核心库文件,包含了所有用于缓存管理的类和方法。"rc"通常表示Release Candidate,意味着这是一个接近最终版本的测试版本,可能已经过广泛的测试,但还有可能存在的小问题...

    oscache缓存技术

    **osCache缓存技术详解** ...总结来说,osCache是一个强大的工具,它简化了Java应用程序的缓存管理,提高了系统性能。通过合理配置和使用,开发者可以充分利用osCache的功能,为应用程序带来显著的性能提升。

    oscache对象缓存

    例如,`CacheManager`类是oscache的核心,它负责创建、管理和销毁缓存实例。`Cache`接口则提供了添加、删除、获取和更新缓存项的方法。此外,oscache还支持事件监听机制,可以监听缓存项的添加、删除和更新事件,...

    基于OSCache的页面缓存(收藏)

    要使用OSCache,我们需要在项目的类路径下引入OSCache的jar包,如`oscache.jar`。然后,在初始化阶段,通过配置文件(通常为`oscache.properties`)设置缓存的相关参数,如缓存大小、过期时间、是否启用持久化等。...

    oscache所需jar包

    `osCache`的核心库依赖于`commons-logging.jar`,这是一个通用的日志记录工具包,为不同日志框架提供统一的接口。 首先,我们来详细探讨`oscache-2.4.1.jar`这个包。它是`osCache`的二进制库,包含了所有实现缓存...

    Hibernate OSCache缓存

    - **监控与调整**:使用 OSCache 提供的监控工具监控缓存使用情况,根据实际情况调整缓存策略。 总之,Hibernate 结合 OSCache 实现的二级缓存能够显著提升数据读取效率,降低数据库压力,但需要注意合理配置和使用...

    OSCache缓存框架的简单用法

    首先,你需要将OSCache的JAR文件添加到项目的类路径中。你可以从OpenSymphony的官方网站或者Maven仓库下载OSCache的最新版本。如果使用Maven,可以在pom.xml文件中添加相应的依赖。 **3. 配置OSCache** OSCache的...

    oscache 集群和数据同步

    此外,osCache还提供了监控工具,如JMX管理接口,可以帮助开发者监控缓存的性能和状态。 总结 osCache作为一款强大的缓存框架,不仅提供了高效的缓存管理,还具备完善的集群和数据同步功能。理解和掌握osCache的...

    oscache文档

    总的来说,OSCache 提供了一套强大且灵活的工具,用于优化 Java 应用程序的性能,通过缓存数据减少数据库查询,从而降低服务器负载。通过正确配置和使用,开发者可以显著提升应用程序的响应速度和用户体验。

    OSCache简介

    总结来说,OSCache 是一个强大的Java缓存工具,它提供了丰富的功能和高度的灵活性,能够帮助开发者优化应用性能,减少数据库访问压力,尤其是在高并发场景下,其价值更为显著。通过学习和掌握OSCache 的使用,开发者...

    oscache 例子

    综上所述,`osCache`是一个强大的工具,能显著提升Java Web应用的性能。理解并熟练掌握其配置、使用和管理,对于开发高效的应用至关重要。通过实践这个例子,你可以更深入地了解如何在实际项目中运用`osCache`。

    OSCACHE配置,文档,示例,JAR包

    使用OSCache需要将对应的JAR包添加到项目的类路径中。`oscache.jar`包含了OSCache的核心功能,而`oscache-tools.jar`则提供了一些辅助工具。可以通过Maven或Gradle等构建工具进行依赖管理,或者直接下载JAR包并添加...

    oscache-2.3.jar

    1. 将oscache-2.3.jar添加到项目的类路径中。 2. 配置oscache的XML配置文件,定义缓存策略、大小限制等参数。 3. 在代码中使用`net.sf.oscache.CacheManager`创建和管理缓存实例。 4. 通过`put()`方法添加缓存项,`...

Global site tag (gtag.js) - Google Analytics