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;//shortcacheif (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 ...
随机推荐
- js-知识集锦
CreateTime--2016年9月22日14:37:51Author:Marydonjs小知识点集锦1. JSON.stringify(Obj);//将Object对象转换成json格式的st ...
- 2014年,daliu_it 年末文章汇总清单
一.javabase 1. Windows环境下JDK安装与环境变量配置 详细的介绍了JDK的安装以及配图,同时安装的注意事项. 2. 项目的命名规范,为以后的程序开发中养成良好的行为习惯 详细的介绍 ...
- web.xml文件头出错
原先将web.xml文件头设置为如下格式 <?xml version="1.0" encoding="UTF-8"?><web-app ver ...
- define() vs const 该如何选择?
使用 define(),除非考虑到可读性.类常量.或关注微优化 1.在 PHP 中是使用 define() 函数来定义常量,PHP 5.3.0 以后,PHP 中也能够使用 const 关键字来声明常量 ...
- CentOS安装配置Samba
介绍 Samba可以让我们在windows中访问linux系统中的文件,如果用来调试linux虚拟机中的代码会非常的方便 1.安装 yum -y update yum install samba sa ...
- springmvc多视图配置
http://blog.csdn.net/yaerfeng/article/details/23593755
- ORA-04089: 无法对 SYS 拥有的对象创建触发器
ORA-04089: 无法对 SYS 拥有的对象创建触发器 http://bbs.csdn.net/topics/390355220 猛然发现自己是用sys用户创建表空间,创建用户,赋权,顺手就把sq ...
- pip安装注意事项
pip源 清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 h ...
- linux常见面试题及答案
1. 在Linux系统中,以文件方式访问设备. 2. Linux内核引导时,从文件/etc/fstab中读取要加载的文件系统. 3. Linux文件系统中每个文件用i字节来标识. 4. 全部磁盘块由四 ...
- Android开发:轻松实现图片倒影效果
效果如下: <ignore_js_op> device_thumb.png (68.26 KB, 下载次数: 41) 下载附件 保存到相册 2011-12-11 09:46 上传 主 ...