网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > JAVA > J2EE > J2ee核心 > 关于OpensymphonyCache的小介绍  

关于OpensymphonyCache的小介绍

2008-06-13  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

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

    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;}

网管联盟bitsCN@com

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

网管u家u.bitsCN.com

     public OSCache(Properties prop) {
      cache = new GeneralCacheAdministrator(prop);
     } 网管下载dl.bitscn.com

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

网管bitscn_com

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

网管bitscn_com

     public void put(Object key, Object value) throws CacheException {
      cache.putInCache(String.valueOf(key), value);
     } 网管下载dl.bitscn.com

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

网管下载dl.bitscn.com

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

网管联盟bitsCN@com

     public void destroy() throws CacheException {
      cache.destroy();
     }
    } 网管下载dl.bitscn.com

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

网管bitscn_com

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

网管u家u.bitsCN.com

     private CacheManager() {
     }

网管bitscn_com

     public static Cache getCache(Class clazz) {
      return getCache(clazz.getName());
     } 网管u家u.bitscn@com

     public static Cache getCache(String cacheId) {
      Cache cache = null; 网管网www.bitscn.com

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

网管下载dl.bitscn.com

      if (cache == null) {
       cache = new OSCache(config.getProperties());
       cacheMap.put(cacheId, cache);
      } 网管联盟bitsCN_com

      return cache;
     }
    }

网管下载dl.bitscn.com

    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还包含一些提高可伸缩性的高级特性,比如:缓冲到磁盘,可编程的缓冲刷新,异常控制,等等。

网管bitscn_com

 

网管联盟bitsCN_com

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

网管网www_bitscn_com


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


TAGs
 上一篇:决定是否使用分布式结构   下一篇:没有了
关于OpensymphonyCache的小介绍 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: