`
JackyCheng2007
  • 浏览: 250144 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

任意java对象的缓冲

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

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 的支持。

/** 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; 

}

摘自: http://www.gamvan.com/club/clubPage.jsp?ccStyle=0&tID=9342&ccID=37
分享到:
评论

相关推荐

    JAVA_API1.6文档(中文)

    java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio.channels 定义了各种通道,这些通道表示到能够执行 I/O 操作的实体(如文件和套接字)的连接;定义了用于多路复用的、非阻塞 I/O 操作的...

    JAVA上百实例源码以及开源项目源代码

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...

    JAVA上百实例源码以及开源项目

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...

    Java 1.6 API 中文 New

    java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio.channels 定义了各种通道,这些通道表示到能够执行 I/O 操作的实体(如文件和套接字)的连接;定义了用于多路复用的、非阻塞 I/O 操作的...

    java api最新7.0

    java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio.channels 定义了各种通道,这些通道表示到能够执行 I/O 操作的实体(如文件和套接字)的连接;定义了用于多路复用的、非阻塞 I/O 操作的...

    JavaAPI1.6中文chm文档 part1

    java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio.channels 定义了各种通道,这些通道表示到能够执行 I/O 操作的实体(如文件和套接字)的连接;定义了用于多路复用的、非阻塞 I/O 操作的...

    JavaAPI中文chm文档 part2

    java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio.channels 定义了各种通道,这些通道表示到能够执行 I/O 操作的实体(如文件和套接字)的连接;定义了用于多路复用的、非阻塞 I/O 操作的...

    java jdk-api-1.6 中文 chmd

    java.math 提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。 java.net 为实现网络应用程序提供类。 java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio....

    [Java参考文档]

    java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio.channels 定义了各种通道,这些通道表示到能够执行 I/O 操作的实体(如文件和套接字)的连接;定义了用于多路复用的、非阻塞 I/O 操作的...

    java自学之道

    2.29 取整数的任意位 2.30 按顺序输出数列 2.31 位置替换 2.32 字符串排序 2.33 贷款器 2.34 通讯录排序 2.35 闰年判断 2.36 二元方程求解 2.37 密码解译 2.38 DVD查询 2.39 电子日历 2.40 万年历 第二篇 提高篇 第...

    [Java参考文档].JDK_API 1.6

    java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio.channels 定义了各种通道,这些通道表示到能够执行 I/O 操作的实体(如文件和套接字)的连接;定义了用于多路复用的、非阻塞 I/O 操作的...

    JDK_API_1_6

    DataOutput DataOutput 接口用于将数据从任意 Java 基本类型转换为一系列字节,并将这些字节写入二进制流。 Externalizable Externalizable 实例类的唯一特性是可以被写入序列化流中,该类负责保存和恢复实例内容。...

    JDK_API_1_6_zh_CN_downcc.com.zip 良心一级分

    java.math 提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。 java.net 为实现网络应用程序提供类。 java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio....

    1_6_zh_CN.CHM

    java.math 提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。 java.net 为实现网络应用程序提供类。 java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio....

    JDK_1_6 API

    java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio.channels 定义了各种通道,这些通道表示到能够执行 I/O 操作的实体(如文件和套接字)的连接;定义了用于多路复用的、非阻塞 I/O 操作的...

Global site tag (gtag.js) - Google Analytics