osCache 简单使用

Cache是一种提高系统的响应速度,改善系统的运行性能的技术.OSCache是OpenSymphony组织提供的一个J2EE架构中Web应用层的缓存技术实现组件.
主要特点
1.可选的缓存区,可以将内存,硬盘或者同时使用内存和硬盘作为缓存区.
2.多种缓存级别,包括页面部分内容或者页面级内容.
3.容错功能,当web应用和数据库之间无法进行交互时,可以使用缓存,为用户提供数据.

1:oscache文件下载

http://www.opensymphony.com/oscache/download.html,目前版本为2.4.1。可以下载 oscache-2.4.1-full文件。里面包含example。

2:解压压缩包,找到oscache.jar.放入工程。

3:基础操作工具类


import java.util.Date;

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

/**
 * @author liuyb
 */
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;
		}
	}

	/**
	 * 
	 * @param key
	 * @param refreshPeriod
	 * @return 被缓存的对象
	 * @throws Exception
	 */
	public Object get(String key, int refreshPeriod) throws Exception {
		try {
			return this.getFromCache(this.keyPrefix + "_" + key, refreshPeriod);
		} catch (NeedsRefreshException e) {
			this.cancelUpdate(this.keyPrefix + "_" + key);
			throw e;
		}
	}
}

4:操作使用


import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.opensymphony.oscache.base.NeedsRefreshException;

@Component
public class PersonCompanyModiCached {
	
	@Autowired
	private PersonCompanyModiSrv personCompanyModiSrv;
	
	private static Logger logger = Logger.getLogger(PersonCompanyModiCached.class);
	private static String PERSON_COMPANY_MODI_CACHE = "personCompanyModiCache";
	private static Long indexSysID = 5L;
	static class PersonCompanyModiCache {
		private static BaseCache personCompanyModiCached = null;
		public static BaseCache getInstance() {
			if (personCompanyModiCached == null) {
				personCompanyModiCached = new BaseCache(PERSON_COMPANY_MODI_CACHE, 3600);//秒为单位的
			}
			return personCompanyModiCached;
		}
	}

	public static void cleanCache() {
		logger.debug("CleanpersonCompanyModiCacheJob...");
		PersonCompanyModiCache.getInstance().removeAll();
	}
}

PersonCompanyModiCache.getInstance().put(wpId, "1");


文中的操只是简单操作。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值