项目中需要实现一个功能,定时查询FTP服务器某个目录下的文件,并及时下载至本机,同时不能消耗太多系统资源。
最后实现是使用ehcache,将文件路径和文件大小缓存,如果前后两次无变化,则忽略。如果同一路径大小有变化,则下载此文件。
当然,由于缓存的不可靠近,如果数据库可以支持,可以将数据写入表中,对数值进行标记。这样更加可靠。
以下是ehcache的简单应用。

1、下载ehcache的相关jar文件并放置到Java Web工程的WebRoot/WEB-INF/lib目录下;
SSH架构下ehcache缓存模块的配置使用
2、编辑JPA配置文件 persistence.xml:

  1. <property name="hibernate.cache.provider_class" value="net.sf.ehcache.hibernate.SingletonEhCacheProvider"/>
  2. <property name="hibernate.cache.use_query_cache" value="true"/>
  3. <property name="hibernate.cache.use_second_level_cache" value="true"/>

3、将ehcache的配置文件ehcache.xml放置在Java Web工程的src目录下,并根据自身需要进行类似如下的配置:

  1. <cache name="edu.bupt.laaip.model.Question"
  2. maxElementsInMemory="500"
  3. eternal="false"
  4. timeToIdleSeconds="1800"
  5. timeToLiveSeconds="3600"
  6. overflowToDisk="false"
  7. />

4、在你想要添加缓存的JPA实体类上添加标签如下:

  1. package edu.bupt.laaip.model;
  2. import java.io.Serializable;
  3. import java.util.Date;
  4. import javax.persistence.*;
  5. import org.hibernate.annotations.Cache;
  6. import org.hibernate.annotations.CacheConcurrencyStrategy;
  7. @Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
  8. @Entity
  9. public class Question implements Serializable{
  10. ……
  11. }

5、在执行查询的query语句上设置cacheable属性,以便将查询结果存入缓存:

  1. @SuppressWarnings("unchecked")
  2. @Override
  3. public List getAll() {
  4. // TODO Auto-generated method stub
  5. Query query = getEntityManager().createQuery("select q FROM Question q");
  6. query.setHint("org.hibernate.cacheable", true);
  7. return query.getResultList();
  8. }

参考链接:
http://blog.sina.com.cn/s/blog_6826662b01017tgg.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

ehcache简单使用的更多相关文章

  1. EhCache简单入门

    一 介绍 EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认CacheProvider.Ehcache是一种广泛使用的开源Java分布式缓存.主要面向通 ...

  2. Ehcache简单说明及使用

    EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider. Ehcache是一种广泛使用的开源Java分布式缓存.主要面向通用缓存 ...

  3. springmvc+ehcache简单例子

    这里采用的是spring3.2.ehcache2.7.tomcat7.0(必须) 1.web.xml <?xml version="1.0" encoding="U ...

  4. 缓存初解(三)---Spring3.0基于注解的缓存配置+Ehcache和OScache

    本文将构建一个普通工程来说明spring注解缓存的使用方式,关于如何在web应用中使用注解缓存,请参见: Spring基于注解的缓存配置--web应用实例 一.简介 在spring的modules包中 ...

  5. 转Spring+Hibernate+EHcache配置(二)

    Spring AOP+EHCache简单缓存系统解决方案 需要使用Spring来实现一个Cache简单的解决方案,具体需求如下:使用任意一个现有开源Cache Framework,要求可以Cache系 ...

  6. Ehcache入门经典:第一篇

    ehcache主要是轻量级的缓存实现 ehcache.xml <?xml version="1.0" encoding="UTF-8"?> < ...

  7. springboot Ehcache使用

    .Ehcache简单说明及使用 EhCache 是一个纯Java的进程内缓存框架,具有快速.精干等特点,是Hibernate中默认的CacheProvider. Ehcache是一种广泛使用的开源Ja ...

  8. Ehcache

    前言:设计一套缓存框架需要关注的要素 本文来源:RayChase  的<设计一套缓存框架需要关注的要素> 最近关注了一些缓存框架的特性和实现,包括OSCache.JCS.Ehcache.M ...

  9. Spring搭配Ehcache实例解析

    转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/50538085 本文出自[我是干勾鱼的博客] 1 Ehcache简单介绍 EhCa ...

随机推荐

  1. 洛谷 P1417 烹调方案

    题目背景 由于你的帮助,火星只遭受了最小的损失.但gw懒得重建家园了,就造了一艘飞船飞向遥远的earth星.不过飞船飞到一半,gw发现了一个很严重的问题:肚子饿了~ gw还是会做饭的,于是拿出了储藏的 ...

  2. CODEVS 2994 超级弹珠

    题目描述 Description 奶牛们最近从著名的奶牛玩具制造商Tycow那里,买了一套仿真版彩蛋游戏设备.Bessie把她们玩游戏的草坪划成了N*N单位的矩阵,同时列出了她的K个对手在草地上的位置 ...

  3. javascript随手记

    编码规范 避免使用全局变量 写在所有函数外面的变量就是全局变量. 之所以要避免使用全局变量是因为:如果有多个类库的话,它们都定义了一个名字的变量.这时候后引入的类库中该变量的值就会覆盖前面引入的类库中 ...

  4. matlab高斯模板生成,K是归一化系数,上面是一个半径200的高斯模板用来做MSR

    R3=; F=zeros(*R3+,*R3+); sigma=R3/; r=; :*R3+     :*R3+         r=(x-R3)*(x-R3)+(y-R3)*(y-R3);       ...

  5. Javascript事件绑定的几种方式

    Javascript的事件绑定主要有四种方法(一下在IE中运行正常,但不保证其他浏览器): [注:onXXX为某一事件,fun为某一function,domId为某一DOM对象id,event类型见后 ...

  6. 1013: [JSOI2008]球形空间产生器sphere

    很直观的一个gauss题: 用的是以前用过的一个模板: #include<cstdio> #include<algorithm> #include<cmath> # ...

  7. MongoDB开发应用实战

    http://special.csdn.net/mongodb/ http://www.csdn.net/article/2011-03-21/294271 http://blog.itpub.net ...

  8. NSBundle的使用,注意mainBundle和Custom Bundle的区别

    1.[NSBundle mainBundle],文件夹其实是Group,如左侧的树形文件管理器 Build之后,文件直接就复制到了根目录下,于是读取的方法,应该是这样: NSString *earth ...

  9. 【HDOJ】4057 Rescue the Rabbit

    挺有意思的一道题目,解法是AC自动机+DP.AC自动机建立fail指针时,一定要注意结点的属性也需要传递.AC自动机结合了trie和kmp的优点.需要注意的是,每个模式串仅计算一次,否则这题很难解. ...

  10. puTTY与SecureCRT的比较

    从网上看到别人对这两个工具的比较:从windows访问linux,除了samba之外,日常操作用得最多的大概就是PuTTY和SecureCRT Putty是免费的,SecureCRT是收费的(当然,有 ...