注册本站  论坛  繁體中文

电脑技巧
手机 | MP3 | MP4 | 显卡 | 主板 | 显示器 | 光存储 | 笔记本 | 网络设备 | 移动存储 | 数码相机
键鼠 | CPU | 音箱 | GPS | 电视 | 服务器 | 投影机 | 机箱电源 | 品牌电脑 | 办公打印 |
| 网站首页 | Cisco | Windows | Linux | Java | Dotnet | Oracle | 网页设计 | 平面设计 | 安全 | 软件应用 | 电脑维修 | 办公维修 |
您现在的位置: 电脑技巧 >> Java >> J2EE >> J2ee核心 >> Java正文

关于OpensymphonyCache的小介绍

文章来源:中国IT实验室收集整理 作者:佚名 更新时间:2008-6-28 20:33:31 【 】 【加入收藏

    Opensymphony(http://www.opensymphony.com)是一个很好提供开源项目的组织。同Jakarta相比,这里的组件(Component)更多的是精致小巧的设计,它们尤以简单易用和可插拔的灵活性见长。

    Java代码
    /** Cache.java */
    public interface Cache {
     Object get(Object key) throws CacheException;
     void put(Object key, Object value) throws CacheException;
     void remove(Object key) throws CacheException;
     void clear() throws CacheException;
     void destroy() throws CacheException;}

    /** OSCache.java */
    public class OSCache implements Cache {
     private GeneralCacheAdministrator cache = null;

     public OSCache(Properties prop) {
      cache = new GeneralCacheAdministrator(prop);
     }

     public void setCacheCapacity(int cacheCapacity) {
      cache.setCacheCapacity(cacheCapacity);
     }

     public Object get(Object key) throws CacheException {
      try {
       return cache.getFromCache(String.valueOf(key));
      } catch (NeedsRefreshException e) {
       cache.cancelUpdate(String.valueOf(key));
       return null;
      }
     }

     public void put(Object key, Object value) throws CacheException {
      cache.putInCache(String.valueOf(key), value);
     }

     public void remove(Object key) throws CacheException {
      cache.flushEntry(String.valueOf(key));
     }

     public void clear() throws CacheException {
      cache.flushAll();
     }

     public void destroy() throws CacheException {
      cache.destroy();
     }
    }

    /** CacheManager.java */
    public class CacheManager { //$SUP-USP$

     private static Map cacheMap = new HashMap();
     private static Config config = ConfigManager.getConfig();

     private CacheManager() {
     }

     public static Cache getCache(Class clazz) {
      return getCache(clazz.getName());
     }

     public static Cache getCache(String cacheId) {
      Cache cache = null;

      cache = (Cache) cacheMap.get(cacheId);

      if (cache == null) {
       cache = new OSCache(config.getProperties());
       cacheMap.put(cacheId, cache);
      }

      return cache;
     }
    }

    OSCache:J2EE Caching机制。它主要用于JSP Caching、Request Caching、General-Purpose Cache三个方面。在JSP Caching、Request Caching方面,OSCache能够解决动态网站的基本问题:缓存动态内容、缓存二进制内容、错误包容。在General-Purpose Cache方面,在Java应用中通过调用OSCache的API来缓存任意的Java对象,hibernate 2.0开始对其也有支持。
    OSCache标记库是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能。虽然已经有一些供应商在提供各种形式的缓存产品,但是,它们都属于面向特定供应商的产品。OSCache能够在任何JSP 1.2兼容的服务器上运行,它不仅能够为所有用户缓冲现有JSP代码块,而且能够以用户为单位进行缓冲。OSCache还包含一些提高可伸缩性的高级特性,比如:缓冲到磁盘,可编程的缓冲刷新,异常控制,等等。

 

    --------------------------------------------------------------------------------


    以上文字摘自moxie(安子)的《WebWork教程-0.90版》
    网上对OSCache的介绍大多是关于JSP Caching、Request Caching方面的,对任意java对象的缓冲大多数人选择了JCS。由于种种原因,hibernate 2.0 放弃了对 JCS 的支持,所以才引起了我对 OSCache 的关注,下面是我参考 Hibernate 的源码对 OSCache 做的简单封装

  • 上一篇Java:

  • 下一篇Java: 没有了
  • 最 新 热 门
     手机开发平台指南、教程和资料介绍
     关于什么叫面向接口编程
     编写高级JavaScript应用代码
     不要验证,直接转化科学计数法
     Eclipse插件开发中实现刷新和重编译介绍
     Java开源技术:Eclipse的使用技巧详解
     配置eclipse 3.2 使用JDK1.5中文JavaAPI
     集成Windows本地应用到Eclipse RCP 程序中
     hibernate.cfg.xml配置文件的说明
     eclipse开发jface时,main.class解决方法
    最 新 推 荐
     关于OpensymphonyCache的小介绍
     决定是否使用分布式结构
     初学者如何开发出一个高质量的J2EE系统
     J2EE服务器安全方法
     全面理解J2SE初始化顺序
     J2EE WEB应用架构介绍和分析
     J2EE中SQL语句自动构造方法
     工作中常用的J2EE技术
     J2EE系统优化之对象与循环
     代码生成新工具:J2EE Spider
    相 关 文 章

    关于什么叫面向接口编程
    spring AOP面向切面编程
    关于String对象解析
    关于Spring切点函数@args()
    关于Struts框架简介
    关于JSP与XML的交互
    关于EJB3的一个简单例子
    关于AOP的应用实例
    关于数字排列的一个程序
    Java编程—Spring AOP本质(6)

    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告

     

    Copyright 2006-2008 pcjx.com All Rights Reserved
    电脑技巧 版权所有 粤ICP备06059145号 地图
    本网站所有内容未经许可不得转载或做其他使用