博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ehcache缓存之web应用实例
阅读量:5743 次
发布时间:2019-06-18

本文共 2575 字,大约阅读时间需要 8 分钟。

hot3.png

Ehcache缓存之web应用实例
前面学习了缓存的基本配置和使用,下面继续学习如何缓存一个页面
我搭建的环境是 spring+freemarker+Maven  ,没有使用hibernate配置缓存 ,想先弄个简单的页面缓存看看
需要jar包:
        <dependency>
          <groupId>net.sf.ehcache</groupId>
          <artifactId>ehcache-web</artifactId>
          <version>2.0.4</version>
        </dependency>
可以加上这个仓库  https://oss.sonatype.org/content/groups/sourceforge/
我测试ehcache配置如下
!-- Sets the path to the directory where cache .data files are created. If the path is a Java System Property it is replaced by its value in the running VM. The following properties are translated: user.home - User's home directory user.dir - User's current working directory java.io.tmpdir - Default temp file path -->
首先学习下缓存配置中几个重要的参数配置
<cache name="SimplePageCachingFilter"
maxElementsInMemory="10"      //这个是表示SimplePageCachingFilter缓存在内存中的element数量
maxElementsOnDisk="10"    //这个是表示SimplePageCachingFilter缓存在磁盘中的element数量
       
eternal="false"      //说明该缓存会死亡
overflowToDisk="true"   //设置是否溢出是是否存到磁盘上
timeToIdleSeconds="10"    //多长时间不访问该缓存,那么ehcache 就会清除该缓存.
timeToLiveSeconds="30"    //缓存的存活时间,从开始创建的时间算起.
memoryStoreEvictionPolicy="LFU"   //缓存的清空策略
/>       
ehcache 中缓存的3 种清空策略:
1 FIFO ,first in first out ,这个是大家最熟的,先进先出,不多讲了
2 LFU , Less Frequently Used ,就是上面例子中使用的策略,直白一点就是讲一直以来最少被使用的.如上面所讲,缓存的元素有一个hit 属性,hit 值最小的将会被清出缓存.
2 LRU ,Least Recently Used ,最近最少使用的,缓存的元素有一个时间戳,当缓存容量满了,而又需要腾出地方来缓存新的元素的时候,那么现有缓存元素中时间戳离当前时间最远的元素将被清出缓存.
 缓存的其他知识可以去百度去,这里介绍缓存的存储方式和一些原理
下面是web.xml方面的配置
SimplePageCachingFilter
net.sf.ehcache.constructs.web.filter.SimplePageCachingFilter
SimplePageCachingFilter
*.do
注意: ehcache.xml文件中配置的缓存名称 必须和web.xml配置的缓存filter名字一致 不然会抛出找不到配置的异常 ;并且必须把ehcache.xml放在class根目录下。
接下来就是写一个Controller了
@Controllerpublic class EhcacheController extends BaseAction {             @RequestMapping(value = "ehcache/save.do" ,method=RequestMethod.GET)    public String index(Locale locale, Model model,HttpServletRequest request,            HttpServletResponse response) throws Exception{        logger.info("welcome  to  daotie home ,the client locale is "+ locale.toString());                               return "ehcache/show";    }   }
我写的是 spring的mvc实现,接下来我们就需要看ehcache/show.ftl页面看看是否用了缓存
你可以再访问一次后,里面修改show.ftl页面内容,会发现没有变化,等过了30秒(因为我在缓存中配置的SimplePageCachingFilter的缓存存活时间是30秒)后就变了,说明缓存起了作用了。
写的比较简单,有什么疑问可以留言。我会关注的
 
 
 
 
 
 

转载于:https://my.oschina.net/zb0423/blog/61135

你可能感兴趣的文章
MFC多线程的创建,包括工作线程和用户界面线程
查看>>
我的友情链接
查看>>
FreeNAS8 ISCSI target & initiator for linux/windows
查看>>
cvs文件提交冲突解决方案
查看>>
PostgreSQL数据库集群初始化
查看>>
++重载
查看>>
Rainbond 5.0.4版本发布-做最好用的云应用操作系统
查看>>
nodejs 完成mqtt服务端
查看>>
在ASP.NET MVC 中获取当前URL、controller、action
查看>>
Spring IoC容器初的初始化过程
查看>>
sql server 触发器
查看>>
[工具]前端自动化工具grunt+bower+yoman
查看>>
自动化测试之WatiN(2)
查看>>
关于完成生鲜电商项目后的一点总结
查看>>
noip2012 普及组
查看>>
第二阶段 铁大Facebook——十天冲刺(10)
查看>>
Java判断是否为垃圾_Java GC如何判断对象是否为垃圾
查看>>
多项式前k项和java_多项式朴素贝叶斯softmax改变
查看>>
java数组只能交换0下标和n_编程练习-只用0交换排序数组
查看>>
centos7安装mysql视频教程_centos7安装mysql(完整)
查看>>