`
JackyCheng2007
  • 浏览: 253800 次
  • 性别: 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
分享到:
评论

相关推荐

    C_Java_Transfer.zip

    JNI提供了一些本地类型,可以直接映射到Java数据类型,如`jint`对应`int`,`jobject`对应任意Java对象。这种方法通常适用于简单的数据类型转换。 2. **创建数据缓冲区** 对于复杂的数据结构,可以创建一个缓冲区...

    Android-Android上的Java对象反序列化

    在Android平台上,Java对象反序列化是一个常见的操作,它涉及到将序列化的数据转换回原来的对象实例。这在数据存储、网络通信以及跨进程通信(IPC)等场景中扮演着重要角色。本文将深入探讨Android上Java对象反序列...

    JAVA_API1.6文档(中文)

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

    java面向对象程序设计习题大全

    ### Java面向对象程序设计习题知识点解析 #### 引言 本书旨在通过一系列习题帮助学生深入理解Java面向对象程序设计的基本概念和技术要点。通过大量的练习题,不仅可以加深对Java基础知识的理解,还能培养解决问题...

    用java实现任意文件分割

    1. **读取文件**:首先,我们需要使用`java.io.File`类来创建一个表示待分割文件的对象,并使用`BufferedInputStream`来高效地读取文件内容。 2. **设定大小**:定义每个分割文件的大小。这个值可以根据实际需求...

    暂停 按任意键继续的功能实现

    1. **头文件**:`#include <iostream>`引入了标准输入输出流对象,用于处理输入输出操作。 2. **主函数**:`int main()`定义了程序的入口点。 3. **输出提示信息**:`std::cout 按任意键继续..." ;`输出一行文本到...

    JAVA实验报告三java输入输出.docx

    实验报告三:Java输入输出 ...通过本次实验,学生能够熟练掌握Java中的基本输入输出操作,包括键盘输入、文件读写和对象序列化。这些是Java开发中不可或缺的基础技能,对于理解和处理数据交互具有重要意义。

    java代码实现文件的拷贝

    在这个例子中,我们创建了`FileInputStream`和`FileOutputStream`对象,然后用它们创建了对应的缓冲流对象。我们读取源文件的字节,写入到目标文件,直到没有更多的数据可读。最后,使用try-with-resources语句自动...

    Java 1.6 API 中文 New

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

    Java I/O编程 java

    `ObjectInputStream`和`ObjectOutputStream`用于序列化和反序列化Java对象,使对象可以保存到文件或在网络上传输。对象流继承自字节流,因此可以处理非原始数据类型。 8. 数据流小结: 在Java I/O编程中,理解不同...

    Java类库 java中常用的类 可以参考

    - `String(StringBuffer buffer)`:初始化一个新的 String 对象,它包含字符串缓冲区参数中的字符序列。 - **示例代码**: ```java public class StrOutput { public static void main(String[] args) { // 将...

    java api最新7.0

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

    java输入输出代码

    - 为了提高读写效率,Java提供了带缓冲功能的流,如BufferedInputStream、BufferedOutputStream、BufferedReader和BufferedWriter。缓冲区可以一次性处理大量数据,减少实际的I/O操作次数。 4. **过滤流(Filter ...

    java输入输出--java实例17例

    3. **对象序列化与反序列化**:Java的Serializable接口允许对象被转换为字节流,方便存储和网络传输。在某些示例中,可能会展示如何实现序列化和反序列化,以便持久化对象状态。 4. **文件输入输出流**:...

    java文件与流操作code

    - 序列化:ObjectOutputStream允许我们将Java对象转换为字节流,保存到文件或通过网络传输。 - 反序列化:ObjectInputStream可以将字节流恢复为原来的Java对象。 5. **转换流** - InputStreamReader和...

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

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

    java输入输出流和反射

    对于随机访问文件,Java提供了RandomAccessFile类,允许在文件中任意位置进行读写操作,这在处理大型文件或需要定位特定数据时非常有用。 Java的序列化机制允许将对象转换为字节流并保存到文件中,或者从文件中恢复...

    TurboCMS.Java模版中的对象参考.doc

    - `Output(Object text)`: 输出任意类型的对象,根据对象类型自动转换。 3. 频道和文档管理 - `GetChannel(String columnUri)` 和 `GetChannelByID(int pid)`: 分别通过频道的路径和ID获取频道对象。 - `...

    API规范JAVA.pdf

    * java.math 是 Java 2 Platform 的一部分,提供了用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。 21、网络应用程序:java.net 为实现网络应用程序提供类。 * java.net 是 Java 2...

    简单的java试题

    Java是一种广泛使用的面向对象的编程语言,以其平台独立性、丰富的类库和高效性能而闻名。这份"简单的java试题"提供了学习和检验Java基础知识的机会。以下是对这些试题中可能涉及的一些核心Java知识点的详细说明: ...

Global site tag (gtag.js) - Google Analytics