ehcache 


ehcache.xml

  1. <ehcache> 
  2.  <diskStore path="java.io.tmpdir" /> 
  3.  <defaultCache maxElementsInMemory="10000" eternal="false" 
  4.   timeToIdleSeconds="1800" timeToLiveSeconds="1800" 
  5.   overflowToDisk="false" /> 
  6.  <cache name="shortcache" maxElementsInMemory="10000" eternal="false" 
  7.   overflowToDisk="false" timeToIdleSeconds="600" 
  8.   timeToLiveSeconds="600" /> 
  9.  <cache name="middlecache" maxElementsInMemory="50000" 
  10.   eternal="false" overflowToDisk="false" timeToIdleSeconds="1800" 
  11.   timeToLiveSeconds="1800" /> 
  12.  <cache name="longcache" maxElementsInMemory="10000" eternal="false" 
  13.   overflowToDisk="false" timeToIdleSeconds="3600" 
  14.   timeToLiveSeconds="3600" /> 
  15.  <cache name="morelongcache" maxElementsInMemory="50000" 
  16.   eternal="false" overflowToDisk="false" timeToIdleSeconds="864000" 
  17.   timeToLiveSeconds="864000" /> 
  18. </ehcache> 




web.xml 配置监听 

  1. <listener> 
  2.   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
  3.  </listener> 
  4.     <listener> 
  5.         <listener-class>com.dadi.oa.init.InitListener</listener-class> 
  6.   </listener>




InitListener 类  监听初始化类

  1. package com.dadi.oa.init; 
  2. import java.util.ArrayList; 
  3. import java.util.List; 
  4. import javax.servlet.ServletContextEvent; 
  5. import javax.servlet.ServletContextListener; 
  6. public class InitListener implements ServletContextListener { 
  7.  private static List<InitHandler> initHandlerList=new ArrayList<InitHandler>(); 
  8.  static { 
  9.   initHandlerList.add(new InitEhcacheHandler()); 
  10.  } 
  11.   
  12.  public void contextDestroyed(ServletContextEvent arg0) { 
  13.   // TODO Auto-generated method stub 
  14.    
  15.  } 
  16.  public void contextInitialized(ServletContextEvent servletContextEvent) { 
  17.   if (initHandlerList != null && initHandlerList.size() > 0) { 
  18.    for (InitHandler initHandler : initHandlerList) { 
  19.     try { 
  20.      initHandler.init(servletContextEvent.getServletContext()); 
  21.     } catch (RuntimeException e) { 
  22.       
  23.      e.printStackTrace(); 
  24.     } 
  25.    } 
  26.   } 
  27.    
  28.  } 


InitHandler 接口 初始化接口

  1. package com.dadi.oa.init; 
  2. import javax.servlet.ServletContext; 
  3. public interface InitHandler { 
  4.  public void init(ServletContext servletContext); 


InitEhcacheHandler 类    ehcache初始化类实现初始化接口

  1. package com.dadi.oa.init; 
  2. import java.io.File; 
  3. import javax.servlet.ServletContext; 
  4. import com.dadi.oa.util.CacheFactory; 
  5. import net.sf.ehcache.CacheManager; 
  6. public class InitEhcacheHandler implements InitHandler { 
  7.  public void init(ServletContext servletContext) { 
  8.   String realpath = servletContext.getRealPath("/WEB-INF/ehcache.xml").replace('/',File.separatorChar); 
  9.   CacheManager cacheManager = new CacheManager(realpath); 
  10.   CacheFactory.setCacheManager(cacheManager); 
  11.  } 




CacheFactory  类   获取各类缓存  

  1. package com.dadi.oa.util; 
  2. import net.sf.ehcache.Cache; 
  3. import net.sf.ehcache.CacheManager; 
  4. import org.apache.commons.lang.StringUtils; 
  5. public class CacheFactory { 
  6.  private  static CacheManager cacheManager ; 
  7.   
  8.  public static Cache getCacheByName(String cachename) { 
  9.   if (StringUtils.isEmpty(cachename)) { 
  10.    System.out.println("cachename must be not empty"); 
  11.    return null; 
  12.   } 
  13.   Cache cache = cacheManager.getCache(cachename); 
  14.   if (cache == null) { 
  15.    System.out.println("no cache named : " + cachename + "has defined. "); 
  16.    return null; 
  17.   } 
  18.   return cache; 
  19.  } 
  20.     /** 
  21.      *<pre><cache name="cachekey" maxElementsInMemory="50000" 
  22.      eternal="false" overflowToDisk="false" timeToIdleSeconds="864000" 
  23.      timeToLiveSeconds="864000" /></pre> 
  24.      功能:获取cache,不存在时,自动创建,options为可选配置参数 
  25.      * @param options [memory,liveSeconds, idleSeconds] 
  26.      * @param cacheName 
  27.      * @return 
  28.      */ 
  29.     public static Cache getCache(String cacheName,int...options) { 
  30.         int memory=10000, liveSeconds=864000, idleSeconds=864000;//shortcache 
  31.         if (options!=null&&options.length>0) { 
  32.             memory = options[0]; 
  33.             liveSeconds=options.length>1?options[1]:liveSeconds; 
  34.             idleSeconds=options.length>2?options[1]:idleSeconds; 
  35.         } 
  36.         Cache cache = getCacheByName(cacheName); 
  37.         if(cache==null){ 
  38.             cache = new Cache(cacheName, memory, false, false, liveSeconds, idleSeconds); 
  39.             cacheManager.addCache(cache); 
  40.             System.out.println("the cache " + cacheName + " has created dynamically. "); 
  41.         } 
  42.         return cache; 
  43.     } 
  44.  public synchronized static void setCacheManager(CacheManager cacheManager) { 
  45.   CacheFactory.cacheManager = cacheManager; 
  46.  } 



使用ehcahe

 
  1. /** 
  2.    * 获取公文证明列表 
  3.    * @param mapping 
  4.    * @param form 
  5.    * @param request 
  6.    * @param response 
  7.    * @return 
  8.    * @throws Exception 
  9.    */ 
  10.   public ActionForward provelist(ActionMapping mapping, ActionForm form, 
  11.           HttpServletRequest request, HttpServletResponse response) 
  12.           throws Exception { 
  13.    String msgid = RequestUtil.getRequestInfo(request, "msgid"); 
  14.    String resultList_en_ = RequestUtil.getRequestInfo(request, "resultList_en_"); 
  15.    CommonListVo commonListVo = CacheFactory.getCache("shortcache").get("commonListVo"+msgid) == null  
  16.      ? null : 
  17. //获取缓存
  18. (CommonListVo)BeanUtils.cloneBean(CacheFactory.getCache("shortcache").get("commonListVo"+msgid).getObjectValue());   
  19.    if(null !=resultList_en_ && resultList_en_.equalsIgnoreCase("output.xls")){ 
  20.     logger.info("---------------prove list execl export .......-----------"); 
  21.    // modfiedExportData(commonListVo.getDataList()); 
  22.    }else{ 
  23.     logger.info("---------------get prove list begin -----------"); 
  24.     if(null == commonListVo){ 
  25.      Map retMap = oaProveManageService.getUserProveList(msgid); 
  26.      if(retMap.get("resultStr").toString().equalsIgnoreCase("fail")){ 
  27.       request.setAttribute("info", "数据库繁忙,请稍候再试!"); 
  28.       request.setAttribute("closepage", "yes"); 
  29.      } 
  30.      commonListVo = new CommonListVo(); 
  31.      commonListVo.setColumnList((ArrayList)genECColumnsList()); 
  32.      commonListVo.setDataList((ArrayList)retMap.get("provelist")); 
  33.      commonListVo.setExportFlag(true); 
  34.      commonListVo.setActionTo("/oaproverpt.do"); 
  35.      commonListVo.setPagesize(100); 
  36. //设置缓存
  37.      CacheFactory.getCacheByName("shortcache").put(new Element("commonListVo"+msgid, BeanUtils.cloneBean(commonListVo))); 
  38.     } 
  39.     commonListVo.setDataList((ArrayList)genECDataList((List)commonListVo.getDataList(),request.getServerName())); 
  40.     
  41.     logger.info("---------------get prove list end -----------"); 
  42.    } 
  43.    request.setAttribute("commonListVo", commonListVo); 
  44.    return mapping.findForward("success"); 
  45.   }


ehcache jar:


附件列表

ehcache 缓存管理工具的更多相关文章

  1. Shiro入门之二 --------基于注解方式的权限控制与Ehcache缓存

    一  基于注解方式的权限控制 首先, 在spring配置文件applicationContext.xml中配置自动代理和切面 <!-- 8配置自动代理 -->    <bean cl ...

  2. 业务逻辑:五、完成认证用户的动态授权功能 六、完成Shiro整合Ehcache缓存权限数据

    一. 完成认证用户的动态授权功能 提示:根据当前认证用户查询数据库,获取其对应的权限,为其授权 操作步骤: 在realm的授权方法中通过使用principals对象获取到当前登录用户 创建一个授权信息 ...

  3. Spring Boot 2.x基础教程:EhCache缓存的使用

    上一篇我们学会了如何使用Spring Boot使用进程内缓存在加速数据访问.可能大家会问,那我们在Spring Boot中到底使用了什么缓存呢? 在Spring Boot中通过@EnableCachi ...

  4. 简单聊聊Ehcache缓存

    最近工作没有那么忙,有时间来写写东西.今年的系统分析师报名已经开始了,面对历年的真题,真的难以入笔,所以突然对未来充满了担忧,还是得抓紧时间学习技术. 同事推了一篇软文,看到了这个Ehcache,感觉 ...

  5. Spring自定义缓存管理及配置Ehcache缓存

    spring自带缓存.自建缓存管理器等都可解决项目部分性能问题.结合Ehcache后性能更优,使用也比较简单. 在进行Ehcache学习之前,最好对Spring自带的缓存管理有一个总体的认识. 这篇文 ...

  6. JAVAEE——BOS物流项目12:角色、用户管理,使用ehcache缓存,系统菜单根据登录人展示

    1 学习计划 1.角色管理 n 添加角色功能 n 角色分页查询 2.用户管理 n 添加用户功能 n 用户分页查询 3.修改Realm中授权方法(查询数据库) 4.使用ehcache缓存权限数据 n 添 ...

  7. SpringMVC + Mybatis + Shiro + ehcache时缓存管理器报错。

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'shiroFilter' ...

  8. SpringBoot2 整合Ehcache组件,轻量级缓存管理

    本文源码:GitHub·点这里 || GitEE·点这里 一.Ehcache缓存简介 1.基础简介 EhCache是一个纯Java的进程内缓存框架,具有快速.上手简单等特点,是Hibernate中默认 ...

  9. Hibernate性能优化之EHCache缓存

    像Hibernate这种ORM框架,相较于JDBC操作,需要有更复杂的机制来实现映射.对象状态管理等,因此在性能和效率上有一定的损耗. 在保证避免映射产生低效的SQL操作外,缓存是提升Hibernat ...

随机推荐

  1. js-知识集锦

      CreateTime--2016年9月22日14:37:51Author:Marydonjs小知识点集锦1. JSON.stringify(Obj);//将Object对象转换成json格式的st ...

  2. 2014年,daliu_it 年末文章汇总清单

    一.javabase 1. Windows环境下JDK安装与环境变量配置 详细的介绍了JDK的安装以及配图,同时安装的注意事项. 2. 项目的命名规范,为以后的程序开发中养成良好的行为习惯 详细的介绍 ...

  3. web.xml文件头出错

    原先将web.xml文件头设置为如下格式 <?xml version="1.0" encoding="UTF-8"?><web-app ver ...

  4. define() vs const 该如何选择?

    使用 define(),除非考虑到可读性.类常量.或关注微优化 1.在 PHP 中是使用 define() 函数来定义常量,PHP 5.3.0 以后,PHP 中也能够使用 const 关键字来声明常量 ...

  5. CentOS安装配置Samba

    介绍 Samba可以让我们在windows中访问linux系统中的文件,如果用来调试linux虚拟机中的代码会非常的方便 1.安装 yum -y update yum install samba sa ...

  6. springmvc多视图配置

    http://blog.csdn.net/yaerfeng/article/details/23593755

  7. ORA-04089: 无法对 SYS 拥有的对象创建触发器

    ORA-04089: 无法对 SYS 拥有的对象创建触发器 http://bbs.csdn.net/topics/390355220 猛然发现自己是用sys用户创建表空间,创建用户,赋权,顺手就把sq ...

  8. pip安装注意事项

    pip源 清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 h ...

  9. linux常见面试题及答案

    1. 在Linux系统中,以文件方式访问设备. 2. Linux内核引导时,从文件/etc/fstab中读取要加载的文件系统. 3. Linux文件系统中每个文件用i字节来标识. 4. 全部磁盘块由四 ...

  10. Android开发:轻松实现图片倒影效果

    效果如下: <ignore_js_op> device_thumb.png (68.26 KB, 下载次数: 41) 下载附件  保存到相册 2011-12-11 09:46 上传   主 ...