ehcache 缓存管理工具
<ehcache>
<diskStore path="java.io.tmpdir" />
<defaultCache maxElementsInMemory="10000" eternal="false"
timeToIdleSeconds="1800" timeToLiveSeconds="1800"
overflowToDisk="false" />
<cache name="shortcache" maxElementsInMemory="10000" eternal="false"
overflowToDisk="false" timeToIdleSeconds="600"
timeToLiveSeconds="600" />
<cache name="middlecache" maxElementsInMemory="50000"
eternal="false" overflowToDisk="false" timeToIdleSeconds="1800"
timeToLiveSeconds="1800" />
<cache name="longcache" maxElementsInMemory="10000" eternal="false"
overflowToDisk="false" timeToIdleSeconds="3600"
timeToLiveSeconds="3600" />
<cache name="morelongcache" maxElementsInMemory="50000"
eternal="false" overflowToDisk="false" timeToIdleSeconds="864000"
timeToLiveSeconds="864000" />
</ehcache>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>com.dadi.oa.init.InitListener</listener-class>
</listener>
package com.dadi.oa.init;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class InitListener implements ServletContextListener {
private static List<InitHandler> initHandlerList=new ArrayList<InitHandler>();
static {
initHandlerList.add(new InitEhcacheHandler());
}
public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generated method stub
}
public void contextInitialized(ServletContextEvent servletContextEvent) {
if (initHandlerList != null && initHandlerList.size() > 0) {
for (InitHandler initHandler : initHandlerList) {
try {
initHandler.init(servletContextEvent.getServletContext());
} catch (RuntimeException e) {
e.printStackTrace();
}
}
}
}
}
package com.dadi.oa.init;
import javax.servlet.ServletContext;
public interface InitHandler {
public void init(ServletContext servletContext);
}
package com.dadi.oa.init;
import java.io.File;
import javax.servlet.ServletContext;
import com.dadi.oa.util.CacheFactory;
import net.sf.ehcache.CacheManager;
public class InitEhcacheHandler implements InitHandler {
public void init(ServletContext servletContext) {
String realpath = servletContext.getRealPath("/WEB-INF/ehcache.xml").replace('/',File.separatorChar);
CacheManager cacheManager = new CacheManager(realpath);
CacheFactory.setCacheManager(cacheManager);
}
}
package com.dadi.oa.util;
import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import org.apache.commons.lang.StringUtils;
public class CacheFactory {
private static CacheManager cacheManager ;
public static Cache getCacheByName(String cachename) {
if (StringUtils.isEmpty(cachename)) {
System.out.println("cachename must be not empty");
return null;
}
Cache cache = cacheManager.getCache(cachename);
if (cache == null) {
System.out.println("no cache named : " + cachename + "has defined. ");
return null;
}
return cache;
}
/**
*<pre><cache name="cachekey" maxElementsInMemory="50000"
eternal="false" overflowToDisk="false" timeToIdleSeconds="864000"
timeToLiveSeconds="864000" /></pre>
功能:获取cache,不存在时,自动创建,options为可选配置参数
* @param options [memory,liveSeconds, idleSeconds]
* @param cacheName
* @return
*/
public static Cache getCache(String cacheName,int...options) {
int memory=10000, liveSeconds=864000, idleSeconds=864000;//shortcache
if (options!=null&&options.length>0) {
memory = options[0];
liveSeconds=options.length>1?options[1]:liveSeconds;
idleSeconds=options.length>2?options[1]:idleSeconds;
}
Cache cache = getCacheByName(cacheName);
if(cache==null){
cache = new Cache(cacheName, memory, false, false, liveSeconds, idleSeconds);
cacheManager.addCache(cache);
System.out.println("the cache " + cacheName + " has created dynamically. ");
}
return cache;
}
public synchronized static void setCacheManager(CacheManager cacheManager) {
CacheFactory.cacheManager = cacheManager;
}
}
/**
* 获取公文证明列表
* @param mapping
* @param form
* @param request
* @param response
* @return
* @throws Exception
*/
public ActionForward provelist(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
String msgid = RequestUtil.getRequestInfo(request, "msgid");
String resultList_en_ = RequestUtil.getRequestInfo(request, "resultList_en_");
CommonListVo commonListVo = CacheFactory.getCache("shortcache").get("commonListVo"+msgid) == null
? null :
//获取缓存
(CommonListVo)BeanUtils.cloneBean(CacheFactory.getCache("shortcache").get("commonListVo"+msgid).getObjectValue());
if(null !=resultList_en_ && resultList_en_.equalsIgnoreCase("output.xls")){
logger.info("---------------prove list execl export .......-----------");
// modfiedExportData(commonListVo.getDataList());
}else{
logger.info("---------------get prove list begin -----------");
if(null == commonListVo){
Map retMap = oaProveManageService.getUserProveList(msgid);
if(retMap.get("resultStr").toString().equalsIgnoreCase("fail")){
request.setAttribute("info", "数据库繁忙,请稍候再试!");
request.setAttribute("closepage", "yes");
}
commonListVo = new CommonListVo();
commonListVo.setColumnList((ArrayList)genECColumnsList());
commonListVo.setDataList((ArrayList)retMap.get("provelist"));
commonListVo.setExportFlag(true);
commonListVo.setActionTo("/oaproverpt.do");
commonListVo.setPagesize(100);
//设置缓存
CacheFactory.getCacheByName("shortcache").put(new Element("commonListVo"+msgid, BeanUtils.cloneBean(commonListVo)));
}
commonListVo.setDataList((ArrayList)genECDataList((List)commonListVo.getDataList(),request.getServerName()));
logger.info("---------------get prove list end -----------");
}
request.setAttribute("commonListVo", commonListVo);
return mapping.findForward("success");
}
附件列表
ehcache 缓存管理工具的更多相关文章
- Shiro入门之二 --------基于注解方式的权限控制与Ehcache缓存
一 基于注解方式的权限控制 首先, 在spring配置文件applicationContext.xml中配置自动代理和切面 <!-- 8配置自动代理 --> <bean cl ...
- 业务逻辑:五、完成认证用户的动态授权功能 六、完成Shiro整合Ehcache缓存权限数据
一. 完成认证用户的动态授权功能 提示:根据当前认证用户查询数据库,获取其对应的权限,为其授权 操作步骤: 在realm的授权方法中通过使用principals对象获取到当前登录用户 创建一个授权信息 ...
- Spring Boot 2.x基础教程:EhCache缓存的使用
上一篇我们学会了如何使用Spring Boot使用进程内缓存在加速数据访问.可能大家会问,那我们在Spring Boot中到底使用了什么缓存呢? 在Spring Boot中通过@EnableCachi ...
- 简单聊聊Ehcache缓存
最近工作没有那么忙,有时间来写写东西.今年的系统分析师报名已经开始了,面对历年的真题,真的难以入笔,所以突然对未来充满了担忧,还是得抓紧时间学习技术. 同事推了一篇软文,看到了这个Ehcache,感觉 ...
- Spring自定义缓存管理及配置Ehcache缓存
spring自带缓存.自建缓存管理器等都可解决项目部分性能问题.结合Ehcache后性能更优,使用也比较简单. 在进行Ehcache学习之前,最好对Spring自带的缓存管理有一个总体的认识. 这篇文 ...
- JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示
1 学习计划 1.角色管理 n 添加角色功能 n 角色分页查询 2.用户管理 n 添加用户功能 n 用户分页查询 3.修改Realm中授权方法(查询数据库) 4.使用ehcache缓存权限数据 n 添 ...
- SpringMVC + Mybatis + Shiro + ehcache时缓存管理器报错。
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'shiroFilter' ...
- SpringBoot2 整合Ehcache组件,轻量级缓存管理
本文源码:GitHub·点这里 || GitEE·点这里 一.Ehcache缓存简介 1.基础简介 EhCache是一个纯Java的进程内缓存框架,具有快速.上手简单等特点,是Hibernate中默认 ...
- Hibernate性能优化之EHCache缓存
像Hibernate这种ORM框架,相较于JDBC操作,需要有更复杂的机制来实现映射.对象状态管理等,因此在性能和效率上有一定的损耗. 在保证避免映射产生低效的SQL操作外,缓存是提升Hibernat ...
随机推荐
- redission 分布式锁
https://my.oschina.net/haogrgr/blog/469439 分布式锁和Redisson实现 Aug 20, 2017 CONTENTS 概述 分布式锁特性 Redis实现 ...
- EXCEPTION-SQL语句
CreateTime--2017年1月12日14:37:52Author:Marydon 声明:异常类文章主要是记录了我遇到的异常信息及解决方案,解决方案大部分都是百度解决的,(这里只是针对我遇到 ...
- 【mysql】mysql中单列索引、联合索引、Join联表查询建立索引 和 EXPLAIN的分析使用
2.创建联合索引,从坐到右分别为:userid.openId.name 2. #### -------------- 多表联合查询 update 2019/03/13 ------------ ...
- HDUOJ----4502吉哥系列故事——临时工计划
吉哥系列故事——临时工计划 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Tot ...
- vi 删除全部内容
非插入模式下删除所有内容 a.光标移到第一行,然后按10000后然后点dd b.光标移到第一行,按下dG 命令输入模式下删除所有内容 a.输入命令.,$d,回车 b.输入命令1,999dd,回车
- 配置tomcat全局c3p0连接池
由于项目中多个应用访问同一个数据库,并部署在同一个tomcat下面,所以没必要每个应用都配置连接池信息,这样可能导致数据库的资源分布不均,所以这种情况完全可以配置一个tomcat的全局连接池,所涉及应 ...
- JFinal record类型数据在前台获取
1.jfinal record还得自己处理一下 可以使用 this.setSessionAttr("user", record.getColumns()); 这样在jsp中el表达 ...
- 转 如何使用Windows Media Load Simulator进行Windows Media服务器性能测试和监控
Windows Media Load Simulator(WMLS)有两个主要的用途:作为极值或者压力测试工具和在线监视器. 1 极值和压力压力测试:你能够在达到期望的极值压力条件下测试离线的 ...
- AP_创建标准发票后会计科目的变化(概念)
2014-06-04 Created By BaoXinjian 1. 创建Invoice,并查看所创建的科目
- 迪杰斯特拉Dijkstra算法介绍
迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径. 它的主要特点是以起始点为中心向外层层扩展(广度优先搜索思想),直到扩展到终点为止. 基本思想 通过Dijk ...