//
package com.wdf.cache;
import java.util.Date;
import com.opensymphony.oscache.base.NeedsRefreshException;
import com.opensymphony.oscache.general.GeneralCacheAdministrator;
public class BaseCache extends GeneralCacheAdministrator {
//过期时间(单位为秒);
protected int refreshPeriod;
//关键字前缀字符;
protected String keyPrefix;
private static final long serialVersionUID = -4397192926052141162L;
public BaseCache(String keyPrefix,int refreshPeriod){
super();
this.keyPrefix = keyPrefix;
this.refreshPeriod = refreshPeriod;
}
//添加被缓存的对象;
public void put(String key,Object value){
this.putInCache(this.keyPrefix+"_"+key,value);
}
public void remove(String key){
this.flushEntry(this.keyPrefix+"_"+key);
}
//删除所有被缓存的对象;
public void removeAll(Date date){
this.flushAll(date);
}
public void removeAll(){
this.flushAll();
}
//获取被缓存的对象;
public Object get(String key) throws Exception{
try{
return this.getFromCache(this.keyPrefix+"_"+key,this.refreshPeriod);
} catch (NeedsRefreshException e) {
this.cancelUpdate(this.keyPrefix+"_"+key);
throw e;
}
}
}
//CacheManager
package com.wdf.cache;
public class CacheManager {
private static NewsBaseCache newsCache=new NewsBaseCache ("asr",1800);
private static Object lock = new Object();
public static NewsBaseCache getInstance(){
if (newsCache == null){
synchronized( lock ){
if (newsCache == null){
newsCache = new NewsBaseCache ("asr",1800);
}
}
}
return newsCache;
}
}
//news bean
package com.wdf.bean;
public class News {
Integer ID;
String value;
public News(Integer ID,String value){
this.ID=ID;
this.value=value;
}
public Integer getID() {
return ID;
}
public void setID(Integer iD) {
ID = iD;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
//Test
package com.wdf.bean;
import com.wdf.cache.CacheManager;
import com.wdf.cache.NewsBaseCache;
public class Test {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
NewsBaseCache baseCache= CacheManager.getInstance();
News news=new News(123,"won");
baseCache.put("123", news);
System.out.println(baseCache.get("123").getValue());
}
}
分享到:
相关推荐
3. **初始化OSCache**:在应用启动时初始化OSCache实例,通常在Servlet容器的初始化回调方法中进行。 4. **使用OSCache**:将需要缓存的对象放入OSCache,例如: ```java Object object = ...; Cache cache = ...
OsCache 是一个高性能、轻量级的Java缓存框架,主要设计用于提高应用程序的数据访问速度,减少数据库的负载。在Java应用中,缓存是一种常用的技术手段,它能够存储经常访问但更新不频繁的数据,从而避免每次请求时都...
压缩包中的代码示例可能包括了如何创建osCache实例、配置缓存、添加和检索缓存对象的步骤。通过学习这些示例,开发者可以更好地理解osCache的工作原理,并将其应用到实际项目中。 总结来说,osCache是一个强大的...
3. 创建缓存对象:在需要缓存数据的地方,创建OsCache实例并指定缓存名称。例如,可以创建一个名为`weatherCache`的缓存,用于存储天气信息。 4. 存储数据:当获取到新的天气信息时,将其存储到OsCache中,键为城市...
接下来,我们需要在代码中初始化OSCache实例,并调用其提供的API来管理缓存。例如,添加页面到缓存: ```java import com.opensymphony.oscache.base.Cache; Cache cache = CacheManager.getInstance().getCache(...
3. **初始化缓存**: 在应用启动时初始化OSCache实例。 4. **数据缓存**: 对于需要缓存的数据,使用OSCache提供的API将其放入缓存,并关联一个唯一的键。 5. **数据获取**: 当需要数据时,首先尝试从缓存中查找,...
**osCache:高效缓存框架详解与实例应用** osCache是一款流行且强大的Java缓存框架,主要用于提高应用程序的性能和响应速度。它通过将经常访问的数据存储在内存中,避免了反复读取数据库或计算数据的过程,从而显著...
3. **初始化OSCache**:在应用启动时初始化OSCache 实例。 4. **存取数据**:使用OSCache 提供的方法将数据放入缓存,并根据需要从缓存中取出数据。 5. **处理缓存失效**:根据配置的过期策略,OSCache 会自动处理...
3. **初始化**:在应用程序启动时初始化OSCache实例,可以使用OSCacheFactory类的getCache()方法。 4. **使用缓存**:在需要缓存数据的地方,使用OSCache提供的put()方法存入数据,get()方法取出数据。 5. **清理...
osCache 是一个开源的、基于Java的缓存框架,它为Java应用程序提供了高效且可配置的内存缓存功能。在本文中,我们将深入探讨osCache的基本概念、工作原理以及如何在实际项目中进行配置和使用。 一、osCache基本概念...
本实例将介绍如何结合Hibernate和OSCache实现二级缓存,以优化应用程序的性能。 一级缓存是Hibernate内置的Session级别的缓存,它存储了在同一个Session内操作的对象,避免了频繁的数据库读写。然而,一级缓存仅...
本篇文章将深入探讨OSCache的核心概念、配置、使用实例以及其在实际开发中的应用。 首先,OSCache是基于内存的缓存系统,它允许开发者将常用的数据存储在内存中,以便快速访问。这种技术对于处理高并发请求和大数据...
除了静态配置文件外,osCache还支持动态编程配置,可以在代码中通过`CacheManager`实例创建和管理缓存。例如: ```java import net.sf.oscache.CacheManager; CacheManager.init("oscache.properties"); // 初始化...
3. **声明缓存**:定义需要缓存的对象,可以通过`CacheManager`获取或创建缓存实例。 4. **缓存数据**:将数据放入缓存,例如`cache.put(key, value);` 5. **获取缓存**:根据键获取缓存数据,`Object value = cache...
例如,使用`CacheManager.getInstance().getCache("myCache")`获取名为“myCache”的缓存实例,然后进行对象的存取操作。 6. 使用示例 此处可给出具体的代码示例,展示如何创建、更新、查询和移除缓存项,以及如何...
- **API集成**:使用osCache提供的API进行缓存的增删改查操作,如`CacheManager.getInstance().getCache("myCache")`获取缓存实例。 4. **使用教程** - **创建缓存**:定义一个缓存,例如`Cache cache = ...
例如,`CacheManager`类是oscache的核心,它负责创建、管理和销毁缓存实例。`Cache`接口则提供了添加、删除、获取和更新缓存项的方法。此外,oscache还支持事件监听机制,可以监听缓存项的添加、删除和更新事件,...
**应用实例** osCache 可用于Web应用程序,例如在Spring框架中集成,提高数据访问效率。也可以在企业级应用中,处理大数据量的缓存需求,减少数据库压力。结合集群功能,可以构建高可用、高性能的分布式缓存系统。 ...
3. **缓存管理**:创建和获取缓存实例,然后添加、检索和移除数据。如: ```java Cache cache = cacheManager.getCache("myCache"); cache.put("key", "value"); String value = (String) cache.get("key"); ...