//
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());
}
}
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());
}
}