`
laies
  • 浏览: 240463 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

OSCache简单例子

    博客分类:
  • Java
阅读更多
OSCache简单例子

1.  BaseCache.java  基类

package com.yanek.demo.cache.oscache;

import java.util.Date;

import com.opensymphony.oscache.base.NeedsRefreshException;
import com.opensymphony.oscache.general.GeneralCacheAdministrator;

public class BaseCache extends GeneralCacheAdministrator {
// 过期时间(单位为秒);
private int refreshPeriod;

// 关键字前缀字符;
private 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;
  }

}

}

2.  CacheManager.java  管理器

package com.yanek.demo.cache.oscache;

public class CacheManager { 
   
    private BaseCache newsCache; 
 
     
    private static CacheManager instance; 
    private static Object lock = new Object(); 
     
    public CacheManager() { 
        //这个根据配置文件来,初始BaseCache而已; 
        newsCache = new BaseCache("news",1800);      
    } 
     
    public static CacheManager getInstance(){ 
        if (instance == null){ 
            synchronized( lock ){ 
                if (instance == null){ 
                    instance = new CacheManager(); 
                } 
            } 
        } 
        return instance; 
    } 
 
    public void putNews(News news) { 
        // TODO 自动生成方法存根 
        newsCache.put(news.getId(),news); 
    } 
 
    public void removeNews(String newsID) { 
        // TODO 自动生成方法存根 
        newsCache.remove(newsID); 
    } 
 
    public News getNews(String newsID) { 
        // TODO 自动生成方法存根 
        try { 
            return (News) newsCache.get(newsID); 
        } catch (Exception e) { 
            // TODO 自动生成 catch 块 
            System.out.println("getNews>>newsID["+newsID+"]>>"+e.getMessage()); 
           // News news = new News(newsID); 
           
            News news = new News(newsID,"aaa","bbb");
            this.putNews(news); 
            return news; 
        } 
    } 
 
    public void removeAllNews() { 
        // TODO 自动生成方法存根 
        newsCache.removeAll(); 
    } 
 


3. News.java  缓存的对象

package com.yanek.demo.cache.oscache;

public class News {

private String id;

private String title;

private String content;


public News(String id, String title, String content) {
  super();
  this.id = id;
  this.title = title;
  this.content = content;
}

public String getContent() {
  return content;
}

public void setContent(String content) {
  this.content = content;
}

public String getId() {
  return id;
}

public void setId(String id) {
  this.id = id;
}

public String getTitle() {
  return title;
}

public void setTitle(String title) {
  this.title = title;
}

}

4. TestCache.java 测试

package com.yanek.demo.cache.oscache;

public class TestCache {

/**
  * @param args
  */
public static void main(String[] args) {

 
  CacheManager cm=CacheManager.getInstance();
  News n1=new News("1","111","111");
  cm.putNews(n1);
  News n1_c=cm.getNews("1");
  System.out.println("c1:"+n1_c.getContent());
 
  News n2=new News("1","111","222");
  cm.putNews(n2);
  System.out.println("c1:"+cm.getNews("1").getContent());
 
  cm.removeNews("1");
 
  System.out.println("c1:"+cm.getNews("1").getContent());
 
  BaseCache countCache = new BaseCache("count",1800);
 
  countCache.put("1100454", 10);
  countCache.put("1100455", 11);
  countCache.put("1100456", 3);
 
  try {
   Integer cachedCount = (Integer)countCache.get("1100454");

   System.out.println("cachedCount:"+cachedCount);
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 
 
 
 
}

}
分享到:
评论

相关推荐

    OSCache学习例子 实例

    OSCache学习例子 实例 很好的与j2ee结合

    Oscache简单实例

    NULL 博文链接:https://aa84990.iteye.com/blog/1879039

    oscache的例子

    OSCache标记库由OpenSymphony设计,它是一种开创性的缓存方案,它提供了在现有JSP页面之内实现内存缓存的功能。OSCache是个一个被广泛采用的高性能的J2EE缓存框架,OSCache还能应用于任何Java应用程序的普通的缓存...

    oscache缓存技术入门实例

    oscache缓存技术入门实例

    oscache的使用实例和详解

    缓存框架oscache 的使用实例和详细解释,

    OsCache实例

    OsCache实例

    oscache 例子

    oscache 例子

    oscache说明

    oscache的简单介绍

    oscache-2.1.jar

    oscache-2.1.jar oscache-2.1.jar

    OSCache缓存技术(6)【实例】

    NULL 博文链接:https://baobeituping.iteye.com/blog/748346

    OSCache配置说明文档

    OSCache由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能。OSCache是一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决...

    oscache(JSP定制标记应用)

    javaweb做页面缓存常用,OSCache是一个工业级的J2EE缓存实现。OSCache不但能缓存java对象,还可以缓存页面,http请求和二进制内容,例如pdf文件等。通过应用OSCache,我们不但可以实现通常的Cache功能,还能够改善...

    用OSCache进行缓存对象

    1、OSCache是什么? 2、OSCache的特点 3、有关“用OSCache进行缓存对象”的研究

    oscache 简单封装了一下的缓存管理类.zip

    oscache 封装了一下了的缓存管理类 示例: Map,Object> info = CacheHandler.cache(key, seconds, new CacheUpdater(this, "parse", param)); 缓存对象 = CacheHandler.cache(key, seconds, new CacheUpdater( ...

    oscache文档

    OSCache标记库由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能。OSCache是个一个广泛采用的高性能的J2EE缓存框架,OSCache能用于任何Java应用程序的普通的...

    Oscache框架的搭建步骤

    使用oscache进行缓存,大大提高web系统运行效率

    oscache的demo

    oscache的简单功能实现的,可以下载下来看看

    Oscache使用手册

    Cache是一种用于提高系统响应速度、改善系统运行性能的技术。尤其是在Web应用中,通过缓存页面的...OSCache是个一个被广泛采用的高性能的J2EE缓存框架,OSCache还能应用于任何Java应用程序的普通的缓存解决方案。。。。

    OSCache缓存框架的简单用法

    OSCache缓存框架的简单用法,希望对大家有所帮助!!!

    OSCache需要的包

    oscache.tld,oscahe.properties,oscache-2.1.jar,commons

Global site tag (gtag.js) - Google Analytics