OSCache 使用
引入OSCache的jar包
package com.sun.utils;
import java.util.Date;
import com.opensymphony.oscache.base.NeedsRefreshException;
import com.opensymphony.oscache.general.GeneralCacheAdministrator;
public class BaseCache extends GeneralCacheAdministrator{
private static final long serialVersionUID = -4397192926052141162L;
private String keyPrefix; //关键字前缀字符,区别属于哪个模块
private int refreshPeriod; //过期时间(单位为秒);
public BaseCache(String keyPrefix,int refreshPeriod){
super();
this.keyPrefix = keyPrefix;
this.refreshPeriod = refreshPeriod;
}
/**
*
* put(添加被缓存的对象)
* @param key
* @param value
* @return void
* @createDate 2013-1-31 下午04:16:46
* @since 1.0.0
*/
public void put(String key,Object value){
this.putInCache(this.keyPrefix+"_"+key,value);
}
/**
* remove(删除被缓存的对象)
* @param key
* @return void
* @createDate 2013-1-31 下午04:17:06
* @since 1.0.0
*/
public void remove(String key){
this.flushEntry(this.keyPrefix+"_"+key);
}
/**
* removeAll(删除指定日期所有被缓存的对象)
* @param date
* @return void
* @createDate 2013-1-31 下午04:17:29
* @since 1.0.0
*/
public void removeAll(Date date){
this.flushAll(date);
}
/**
* removeAll(删除所有被缓存的对象)
* @return void
* @createDate 2013-1-31 下午04:18:01
* @since 1.0.0
*/
public void removeAll(){
this.flushAll();
}
/**
* get(获取被缓存的对象)
* @param key
* @return
* @throws Exception
* @return Object
* @createDate 2013-1-31 下午04:18:45
* @since 1.0.0
*/
public Object get(String key) throws Exception{
try{
return this.getFromCache(this.keyPrefix+"_"+key,this.refreshPeriod);
} catch (NeedsRefreshException e) {
this.cancelUpdate(this.keyPrefix+"_"+key);
e.printStackTrace();
throw e;
}
}
}
=============================================
package com.sun.utils;
public class User {
}
=============================================
package com.sun.utils;
public interface UserCacheService {
/**
* 前缀,用来区别于各个模块的缓存
*/
public String KEY_PREFIX="_user";
/**
*缓存刷新的时间
*/
public int REFRESH_PERIOD=3600;
/**
* putInCache(添加用户信息到缓存中)
* @param userId
* @param user
* @return void
* @createDate 2013-1-31 下午04:40:31
* @since 1.0.0
*/
public void putInCache(String userId,User user);
/**
* removeFromCache(在缓存中删除该用户信息)
* @param userId
* @return void
* @createDate 2013-1-31 下午04:40:58
* @since 1.0.0
*/
public void removeFromCache(String userId);
/**
* removeAll(删除该模块的所有缓存)
* @return void
* @createDate 2013-1-31 下午04:47:09
* @since 1.0.0
*/
public void removeAll();
/**
*
* getFromCache(根据用户ID获取缓存中的信息)
* @param userId
* @return void
* @createDate 2013-1-31 下午04:41:30
* @since 1.0.0
*/
public User getFromCache(String userId);
}
===========================================
package com.sun.utils;
public class UserCacheServiceImpl implements UserCacheService {
private BaseCache cache=new BaseCache(KEY_PREFIX, REFRESH_PERIOD);
@Override
public void putInCache(String userId, User user) {
cache.put(userId, user);
}
@Override
public void removeFromCache(String userId) {
cache.remove(userId);
}
@Override
public void removeAll() {
cache.removeAll();
}
@Override
public User getFromCache(String userId) {
User user=null;
try {
user= (User)cache.get(userId);
} catch (Exception e) {
e.printStackTrace();
}
return user;
}
}
-------------------------------------------------------------------------------------
OSCached缓存页面
<filter>
<filter-name>CacheFilter</filter-name>
<filter-class>com.opensymphony.oscache.web.filter.CacheFilter</filter-class>
<init-param>
<param-name>time</param-name>
<param-value>600</param-value>
</init-param>
<init-param>
<param-name>scope</param-name>
<param-value>session</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CacheFilter</filter-name>
<!-- 对所有jsp页面内容进行缓存 -->
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
在页面级缓存的情况下,可以通过设置CacheFilter的初始属性来决定缓存的一些特性:time属性设置缓存的时间段,默认为3600秒,可以根据自己的需要只有的设置,而scope属性设置,默认为application,可选项包括application、session
缓存页面的部分
OSCache 使用的更多相关文章
- 缓存初解(三)---Spring3.0基于注解的缓存配置+Ehcache和OScache
本文将构建一个普通工程来说明spring注解缓存的使用方式,关于如何在web应用中使用注解缓存,请参见: Spring基于注解的缓存配置--web应用实例 一.简介 在spring的modules包中 ...
- OSCache 缓存技术
前言:OSCache标记库由OpenSymphony设计,它是一种开创性的JSP定制标记应用,提供了在现有JSP页面之内实现快速内存缓冲的功能.OSCache是个一个广泛采用的高性能的J2EE缓存框架 ...
- javaWeb Cache技术――OSCache(转-全)
什么是osCache? 它是:http://baike.baidu.com/view/1835163.htm?fr=aladdin OSCache使用指南 一.下载安装 OSCache是一个基于web ...
- OSCache缓存框架介绍
OSCache是一种开放性的JSP定制标记应用,由OpenSymphony设计,提供了在现有JSP页面之内实现快速内存缓冲的功能. OSCache是个一个广泛采用的高性能的J2EE缓存框架 ...
- OSCache报错error while trying to flush writer
Struts2.3+spring3+hibernate3开发现在想在原有基础上使用 oscache提高性能,使用中发现问题例如:使用struts2标签<cache:cache time=&quo ...
- 利用OsCache实现后端轮循
轮循随处可见,最常用的是APP首页的一些促销活动,一两秒切换一张图片,让前端实现起来也不难.这里说下后端的轮循,实现原理是数组+缓存.将数组放入缓存,指定缓存失效时间,如果是在失效前从缓存中取数据,那 ...
- oscache源码浅析
oscache作为本地缓存框架,存储模型依然是通用的缓存键值对模型.oscache使用HashTable存放数据,我们看下源码: GeneralCacheAdministrator: /** * Ge ...
- oscache使用经历
oscache作为一款老的本地缓存,应用场景主要有页面缓存和对象缓存.这里拿在maven项目中使用oscache作为对象缓存举例说明下用法: 1.导入jar包 <dependency> & ...
- oscache.properties文件配置
1.cache.memory是否使用内存缓存:值为:true或false.默认为true:如设置为false,那cache只能缓存到数据库或硬盘中. 2.cache.capacity缓存的最大数量.默 ...
随机推荐
- 关于ECSHOP模板架设的服务器php版本过高报错的解决方法(二)
ECShop安装之后,在后台发现一个错误,这个错误提示的意思:mktime()方法不带参数被调用时,会被抛出一个报错提示. ECShop安装之后,在后台发现一个错误提示: Strict Standar ...
- flexbox备忘
伸缩项目的父元素: display:flex || display:inline-flex fiex-direction: row(默认) | row-reverse | column | colum ...
- npoi导入--从varchar数据类型到datetime数据类型转换产生一个超出范围的值问题
一,导入问题如图: 二,解决方法和原因: 1,经过调试发现导入获取到的日期数据被装换成1/1/10 0:00,如下图: 而将以上的数据插入数据库类型为datatime的列时会报错 2,经过去了解npo ...
- ASP.NET MVC Url中带点号出现404错误的解决方案
由于项目需求,项目的路由设计如下 config.Routes.MapHttpRoute( name: "Get/Put Sku", routeTemplate: "api ...
- InnoDB引擎数据存放位置
InnoDB引擎的mysql数据存放位置 采用InnoDB引擎的数据库创建表后,会在mysql数据存放目录下生成一个和数据库名相同的目录.该目录下包涵一个db.opt文件和该库下所有表同名的frm文件 ...
- Ajax与CustomErrors的尴尬
在ASP.NET程序中,为了给用户显示友好的错误信息,通常在web.config中进行如下的设置: <customErrors mode="RemoteOnly" defau ...
- Openjudge-NOI题库-旅行-数论
题目描述 Description 转眼毕业了,曾经朝夕相处的同学们不得不都各奔东西,大家都去了不同的城市开始新的生活.在各自城市居住了一段时间后,他们都感到了一些厌倦,想去看看其他人的生活究竟如何,于 ...
- eclipse 配置 Tomcat 遇到的问题以及解决办法
Eclipse是一个开发JSP的很好的工具,而笔者在配置Tomcat服务器的时候遇到了一些小问题,在这里给大家总结一些经验,希望能帮助同样遇到这些问题的广大同行们能够简单轻松地解决这些问题~ 笔者在以 ...
- VMware安装ubuntu,通过/mnt/hgfs 挂载共享Windows系统文件夹
网上各种相关的配置说明,但是都没一个完整的,在这里楼主结合实战亲测,这一整套包含各种情况 1.安装VMware tools 2.解压到任意一个文件夹 tar -xzvf VMwareTools**** ...
- 第一百二十四节,JavaScriptCookie与存储
JavaScriptCookie与存储 学习要点: 1.cookie 2.cookie局限性 3.其他存储 随着Web越来越复杂,开发者急切的需要能够本地化存储的脚本功能.这个时候,第一个出现的方案: ...