在实际应用中除了JSP标签库,还可以使用OSCache提供的Java API .下面我来介绍一个实用的Java类 ,使用GeneralCacheAdministrator来建立,刷新和管理缓存.
应用OSCache Java API的一般步骤:
1 建立一个**Bean的缓存类**Cache.
2 import com.opensymphony.oscache.general.*;import com.opensymphony.oscache.base.*;
3 建立一个**DAO类以便操作数据库(也可将上两项的内容直接合并到这里).
4 在**Cache类里生成一个GeneralCacheAdministrator的实例admin用来管理缓存.
GeneralCacheAdministrator admin = new GeneralCacheAdministrator();
5 **Cache中的方法 如.clear(),flush().基本调用的为OSCache的 Java API.
6 在**Cache添加getBeans()和getBean()方法 以便获取缓存中的实例对象.具体实现可参照上面的例子.
7 主要用到的GeneralCacheAdministrator的方法有
public Object getFromCache(String key) throws NeedsRefreshException; -- 从缓存中获取一个key标识的对象.
public Object getFromCache(String key, int refreshPeriod) throws NeedsRefreshException ; -- 从缓存中获取一个key标识的对象. refreshPeriod刷新周期,标识此对象在缓存中保存的时间(单位:秒)
public void putInCache(String key, Object content) -- 存储一个由Key标识的缓存对象.
public void putInCache(String key, Object content, String[] groups) -- 存储一个由Key标识的属于groups中所有成员的缓存对象.
public void flushEntry(String key) -- 更新一个Key标识的缓存对象.
public void flushGroup(String group) --更新一组属于groupr标识的所有缓存对象.
public void flushAll() -- 更新所有缓存.
public void cancelUpdate(String key) --- 取消更新 只用于在处理捕获的NeedsRefreshException异常并尝试生成新缓存内容失效的时候.
public void removeEntry(String key) ---从缓中移除一个key标识的对象
public void clear() --- 清除所有缓存
eg.
------------
///采取补救措施的典型方案
String myKey = "myKey";
String myValue;
int myRefreshPeriod = 1000; //刷新周期1000秒
try {
//从Cache中获得 要做类型转换
myValue = (String) admin.getFromCache(myKey, myRefreshPeriod);
} catch (NeedsRefreshException nre) {
try {
// Cache中没有则从库获得数据.
myValue = "This is the content retrieved.";
// 存放在Cache中 键值myKey
admin.putInCache(myKey, myValue);
} catch (Exception ex) {
// 尝试恢复Cache中的内容
myValue = (String) nre.getCacheContent();
// 如果Cache中的内容没有复原 则用这个终级方法
admin.cancelUpdate(myKey); //取消对myKey的更新 即类似数据回滚
}
}
///不采取补救措施的典型方案
String myKey = "myKey";
String myValue;
int myRefreshPeriod = 1000;
try {
//从Cache中获得 要做类型转换
myValue = (String) admin.getFromCache(myKey, myRefreshPeriod);
} catch (NeedsRefreshException nre) {
try {
// Cache中没有则从库获得数据.
myValue = "This is the content retrieved.";
// 存放在Cache中 键值myKey
admin.putInCache(myKey, myValue);
updated = true;
} finally {
if (!updated) {
// 如果Cache中的内容更新出现异常 则用这个终级方法
admin.cancelUpdate(myKey); //取消对myKey的更新 即类似数据回滚
}
}
}
注意:
如果一个NeedsRefreshException出现 必须调用admin.putInCache或甚至admin.cancelUpdate来避免死锁情况发生.
---------------
以上就是OSCache提供的最常用的一个实用Java类.OSCache还提供有很多API 这里只是给大家介绍了一点点的,算是抛砖引玉,在今后的开发和应用过程中还需要大家一起去研究.
分享到:
相关推荐
- **API集成**:使用osCache提供的API进行缓存的增删改查操作,如`CacheManager.getInstance().getCache("myCache")`获取缓存实例。 4. **使用教程** - **创建缓存**:定义一个缓存,例如`Cache cache = ...
OSCache作为一款广泛使用的缓存框架,主要解决了Java应用中的数据重复计算和加载问题,从而显著提高系统响应速度。其特性包括但不限于: 1. 缓存任何对象:无论是部分JSP页面、HTTP请求,还是自定义的Java对象,...
**osCache 是一款高效、轻量级的 Java 缓存框架,主要用于提高应用程序的性能和减少对数据库的访问。在本文中,我们将深入探讨 osCache 的核心概念、使用场景以及如何在项目中有效地利用它。** ### 一、缓存的重要...
osCache 是一款强大的缓存解决方案,尤其在Java开发中被广泛使用。它不仅提供了类似于Map的数据结构操作,还具备内置的集群支持,使得数据缓存可以在分布式环境中高效地进行。这个"oscache-2.1.1-full.zip"压缩包...
4. **docs**:文档目录,一般包含API文档、用户手册或者开发者指南,帮助开发者理解osCache的使用方法、API接口和最佳实践。 5. **src**:源代码目录,如果提供的话,可以查看osCache的内部实现,这对于学习和调试...
- `readme.txt`:包含了关于如何安装、配置和使用OSCache的指南,以及可能的变更和注意事项。 - `www.pudn.com.txt`:可能是来源或者版权信息,也可能包含额外的说明或链接。 - `src`:源代码目录,对于开发者来...
oscache,全称OpenSymphony OSCache,是一个广泛使用的开源Java对象缓存框架,它允许开发者将数据存储在内存中,以减少对数据库的访问,从而提升应用的响应速度。本文将深入探讨oscache的核心概念、工作原理以及如何...
`docs`目录可能包含osCache的API文档,帮助开发者了解和使用各个类和方法。`src`目录可能包含了源代码,对于学习osCache的工作原理和进行定制化开发非常有用。`lib`目录可能包含了osCache运行所依赖的其他库文件,...
`osCache`是一个广泛使用的Java缓存解决方案,它为应用程序提供了内存缓存功能,能够有效地减少对数据库的访问,从而提升整体系统的响应速度。`osCache`的核心库依赖于`commons-logging.jar`,这是一个通用的日志...
(2) 拥有全面的API:OSCache API允许你通过编程的方式来控制所有的OSCache特性。 (3) 永久缓存:缓存能被配置写入硬盘,因此允许在应用服务器的多次生命周期间缓存创建开销昂贵的数据。 (4) 支持集群:集群缓存...
OSCache 是一个广泛使用的开源缓存解决方案,尤其在Java应用中,它被JBoss, Hibernate, Spring等知名框架所支持。其主要特点是配置简单,适用于页面级别的缓存管理。以下是对OSCache配置和使用过程的详细说明: 1. ...
接下来,我们需要在代码中初始化OSCache实例,并调用其提供的API来管理缓存。例如,添加页面到缓存: ```java import com.opensymphony.oscache.base.Cache; Cache cache = CacheManager.getInstance().getCache(...
OSCache的设计理念是提供一个简单易用的API,使得开发者能够快速集成到现有的Java应用中,同时提供丰富的配置选项以适应各种复杂的缓存需求。 OSCache主要包含以下核心特性: 1. **对象缓存**:OSCache支持对任何...
2. **缓存管理**:OSCache提供了丰富的API来管理缓存,包括添加、删除、更新缓存项,以及设置缓存过期策略等。 3. **缓存同步**:在多线程环境下,OSCache确保了缓存数据的一致性,通过锁机制保证了并发访问的安全...
OSCache的核心特性包括缓存对象的自动过期、内存管理策略、缓存同步以及丰富的API。 **2. 安装与依赖** 首先,你需要将OSCache的JAR文件添加到项目的类路径中。你可以从OpenSymphony的官方网站或者Maven仓库下载...
2. **全面的API支持**:OSCache API提供了全面的程序控制接口,以便开发者能够灵活地利用所有OSCache特性。 3. **持久化缓存**:缓存内容可根据需要写入硬盘,这有助于保留那些创建成本较高的数据,并使它们在应用...
2. **全面的 API**:OSCache 提供了丰富的 API,允许开发者通过编程方式控制缓存的各个方面,如存取、更新和过期策略。 3. **永久缓存**:缓存内容可以被持久化到硬盘,以便在应用服务器重启后仍能快速恢复。 4. *...
同时,OSCache提供了丰富的API供开发者操作缓存,如添加、删除、更新和查询缓存项。 六、文档资源 参考文件"osCache.doc"可进一步了解OSCache的详细配置、使用示例以及常见问题解决方法,它将帮助开发者更深入地...
此外,OSCache还提供了API来实现更复杂的缓存操作,如清除特定缓存项、刷新整个缓存等。开发者可以根据实际需求选择合适的缓存策略和管理方法。 在实际应用中,需要注意监控和调整缓存设置,以确保最佳性能。过度...