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 ...
随机推荐
- eclipse 如何修改maven插件本地仓库jar包默认存储位置
eclipse 如何修改maven插件本地仓库jar包默认存储位置 CreateTime--2018年4月18日11:04:47 Author:Marydon 1.更改eclipse的maven本 ...
- 搭建Hexo博客并部署到Github
参考: http://www.jianshu.com/p/a67792d93682 http://jingyan.baidu.com/article/d8072ac47aca0fec95cefd2d. ...
- JavaScript-jQuery报TypeError $(...) is null错误(jQuery失效)解决办法
出现这种错误一般都是jQuery的$方法被覆盖, 解决办法: 1.把$改为jQuery使用 jQuery.noConflict();//将变量$的控制权让渡给给其他插件或库 jQuery(functi ...
- 【转载】CodeLite汉化
这几天在Ubuntu下做程序想找一个代码提示功能比较好的IDE但又不想用NETBEANS和ECLIPSE,找到CodeLite但是它是全英文的,比较晕.找了一下,下载了一个windows版的准备回去研 ...
- 更新开源库到pods上时报CocoaPods was not able to update the `master` repo的解决办法
今天在更新我的开源库到pods上时,使用以下命令时,报错了... pod trunk push SwiftPopMenu.podspec 错误内容: CocoaPods was not able to ...
- jsp中Undefined type: xxxx...
在测试jsp的动作元素<jsp:useBean >时,写了一个计数器的栗子: JavaBean: package com.pers.count; /** * @author liangya ...
- HDUOJ---Piggy-Bank
Piggy-Bank Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- 使用Apache FtpServer
Java大法一统天下.遇到任何问题,先查一下Java中的解决方案. 地球上的许多事情,在Java中都能找到完美的解决方案. FtpServer是apache MINA项目的一个子项目,它实现了一个ft ...
- 【LeetCode】31. Next Permutation (2 solutions)
Next Permutation Implement next permutation, which rearranges numbers into the lexicographically nex ...
- STL之内存处理
说明:本文仅供学习交流,转载请标明出处,欢迎转载! STL中与内存配置相关的类是allocator类,头文件为:#include<alllocator>这是一个模板类,用于内存的分配.对象 ...