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 ...
随机推荐
- API密钥
什么是API密钥? 答:在api调用时,用来按照指定规则对您的请求参数进行签名,服务器收到你的请求时会进行签名验证,即可以界定你的身份也可以防止其他人通过某种手段恶意篡改你的请求数据. 密钥的使用? ...
- 19、java内存分配 常量池详解
在class文件中,“常量池”是最复杂也最值得关注的内容. Java是一种动态连接的语言,常量池的作用非常重要,常量池中除了包含代码中所定义的各种基本类型(如int.long等等)和对象型(如Stri ...
- Spring mvc中@RequestMapping 6个基本用法小结
Spring mvc中@RequestMapping 6个基本用法小结 小结下spring mvc中的@RequestMapping的用法. 1)最基本的,方法级别上应用,例如: @RequestMa ...
- cxf之GET,POST,PUT,DELETE的区别
GET,POST,PUT,DELETE的区别 注意: 文中有错误地方:关于增改删查正确的描述应为: get对应的是查询post对应的是保存/增加delete对应的是删除put对应的是更新
- logback+slf4j作为日志系统
一.logback简介 log4j和logback作者是同一人:CekiGülcü.log4j和logback都是实打实的日志系统. commons-logging,slf4j这两者是日志大管家.sl ...
- tensorflow的警告
W c:\tf_jenkins\home\workspace\release-win\device\cpu\os\windows\tensorflow\core\platform\cpu_featur ...
- JavaScript 设计模式之代理模式
一.代理模式概念解读 1.代理模式概念文字解读 代理,顾名思义就是帮助别人做事,GOF对代理模式的定义如下: 代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问.代理模式使得代理对象 ...
- Eclipse 选中变量高亮显示设置
- Android干坏事——禁止设备休眠
实现这一功能的方法有两种,一种是在Manifest.xml文件里面声明,一种是在代码里面修改LayoutParams的标志位.具体如下: 1.在Manifest.xml文件里面用user-permis ...
- URL 长度有限制吗?
众所周知,传递小量参数(在没有其他原因,例如隐藏参数值的情况下)推荐使用GET方法,传递大量参数推荐使用POST方法.原因是什么呢? 原因是传说GET方法是通过URL来传递,而URL的长度是受限的,而 ...