springmvc配置文件:

<beans
....
xmlns:cache="http://www.springframework.org/schema/cache"
xsi:schemaLocation="....
http://www.springframework.org/schema/cache
http://www.springframework.org/schema/cache/spring-cache.xsd">
<bean id="cacheManagerFactory" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property name="configLocation" value="classpath:ehcache.xml"></property>
</bean>
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager">
<property name="cacheManager" ref="cacheManagerFactory"></property>
</bean>
<!-- 开启spring缓存 -->
<cache:annotation-driven cache-manager="cacheManager" />

ehcache.xml:

<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
updateCheck="false">
<!-- 缓存到磁盘路径 -->
<diskStore path="d:/cache" />
<defaultCache
maxEntriesLocalHeap="0"
eternal="false"
timeToIdleSeconds="30"
timeToLiveSeconds="30">
</defaultCache>
<!-- 自定义缓存 -->
<cache
name="loginSession"
maxElementsInMemory="200"
maxElementsOnDisk="1000"
eternal="false"
overflowToDisk="true"
diskSpoolBufferSizeMB="20"
timeToIdleSeconds="300"
timeToLiveSeconds="600"
memoryStoreEvictionPolicy="LFU" />
<cache
name="loginIpList"
maxElementsInMemory="200"
maxElementsOnDisk="1000"
eternal="false"
overflowToDisk="true"
diskSpoolBufferSizeMB="10"
timeToIdleSeconds="300"
timeToLiveSeconds="600"
memoryStoreEvictionPolicy="LFU" />
</ehcache>

自定义Ehcache类:

package net.nblh.utils.common;

import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element; public class EhcacheUtils {
private CacheManager cacheManager;
private static final String path = "/ehcache.xml";//ehcache的配置文件的路径
private static EhcacheUtils ehcache; /**
* 创建缓存对象
* @param path
*/
private EhcacheUtils(String path) {
cacheManager = CacheManager.create(getClass().getResource(path));
} public static EhcacheUtils getInstance() {
if (ehcache == null) {
ehcache = new EhcacheUtils(path);
}
return ehcache;
} /**
* 缓存一个对象
* @param cacheName
* @param key
* @param value
*/
public void putCache(String cacheName,Object key,Object value) {
Cache cache = cacheManager.getCache(cacheName);
Element element = new Element(key, value);
cache.put(element);
} /**
* 获取一个缓存对象
* @param cacheName
* @param key
* @return
*/
public Object getCache(String cacheName,String key) {
Cache cache = cacheManager.getCache(cacheName);
Element element = cache.get(key);
return element == null?null:element.getObjectValue();
} public Cache getCache(String cacheName) {
return cacheManager.getCache(cacheName);
} /**
* 移除一个缓存对象
* @param cacheName
* @param key
*/
public void removeCache(String cacheName,String key) {
Cache cache = cacheManager.getCache(cacheName);
cache.remove(key);
} }

调用:

EhcacheUtils.getInstance().putCache("loginSession", session, user.getLoginName());
Cache cache = EhcacheUtils.getInstance().getCache("loginSession");
EhcacheUtils.getInstance().putCache("loginIpList", user.getId(), loginIp);
Cache cache = EhcacheUtils.getInstance().getCache("loginIpList");

java-Ehcache缓存的更多相关文章

  1. java中使用Ehcache缓存数据

    知识点:在java项目中,使用ehcache缓存数据 参考博客:http://www.cnblogs.com/jingmoxukong/p/5975994.html ()概述 Ehcache是一个纯J ...

  2. java项目中ehcache缓存最简单用法

      java项目中ehcache缓存最简单用法: 1.下载ehcache-core-2.4.3.jar复制到项目的lib目录下 2.新建ehcache.xml文件,放置在项目src目录下的resour ...

  3. 详解Spring MVC 集成EHCache缓存_java - JAVA

    文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 废话少说,直接上代码: ehcache.xml 文件 <?xml version="1.0" ...

  4. 转载:Spring+EhCache缓存实例

    转载来自:http://www.cnblogs.com/mxmbk/articles/5162813.html 一.ehcahe的介绍 EhCache 是一个纯Java的进程内缓存框架,具有快速.精干 ...

  5. cache4j轻量级java内存缓存框架,实现FIFO、LRU、TwoQueues缓存模型

    简介 cache4j是一款轻量级java内存缓存框架,实现FIFO.LRU.TwoQueues缓存模型,使用非常方便. cache4j为java开发者提供一种更加轻便的内存缓存方案,杀鸡焉用EhCac ...

  6. Spring+EhCache缓存实例

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

  7. 深入探讨在集群环境中使用 EhCache 缓存系统

    EhCache 缓存系统简介 EhCache 是一个纯 Java 的进程内缓存框架,具有快速.精干等特点,是 Hibernate 中默认的 CacheProvider. 下图是 EhCache 在应用 ...

  8. EhCache缓存

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

  9. 5个强大的Java分布式缓存框架推荐

    在开发中大型Java软件项目时,很多Java架构师都会遇到数据库读写瓶颈,如果你在系统架构时并没有将缓存策略考虑进去,或者并没有选择更优的 缓存策略,那么到时候重构起来将会是一个噩梦.本文主要是分享了 ...

  10. java 开源缓存框架--转载

    原文地址:http://www.open-open.com/13.htm  JBossCache/TreeCache  JBossCache是一个复制的事务处理缓存,它允许你缓存企业级应用数据来更好的 ...

随机推荐

  1. C# .net 高清压缩图片 合并图片方法

    /// <summary> /// 合并宽度一样的图片 /// </summary> /// <param name="imgUrls">多张图 ...

  2. Golang常见小细节总结(1)

    本系列不定期更新,用于记录平常开发过程中出现的一些小问题 Array 类型的值作为函数参数    可以理解slice是对array的一个视图,底层还是array所以会被修改 通过map的ok来确 ...

  3. springMVC返回json数据乱码问

    在springMVC controller中返回json数据出现乱码问题,因为没有进行编码,只需要简单的注解就可以了 在@RequestMapping()中加入produces="text/ ...

  4. WordtoPdfUtil word转pdf

    jar: <dependency> <groupId>com.jacob</groupId> <artifactId>jacob</artifac ...

  5. 【PHP】两个时间段间隔30分钟的所有时间

    运用场景: 比如在进行配送时候,需要让用户选择 送达时间, 平台只需要设置每天的营业时间.比如:08:00 到  22:30. 前台在展示时候: 就需要处理成各个时间段来展示: 代码实现: <? ...

  6. Qt编写安防视频监控系统15-远程回放

    一.前言 远程回放有两种处理方式,一种是采用NVR厂家提供的SDK开发包来登录到NVR上,然后根据SDK的函数接口指定的视频文件,当然也有接口查询视频文件列表等:一种是采用视频监控行业的国标GB281 ...

  7. element ui 下拉框绑定对象并且change传多个参数

    废话不说直接上代码说明真相. <template> <div class="hello"> <span>可以设置的属性 value-key=&q ...

  8. mvn-dependencies-vs-dependencyManagement

    dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显式的声明需要用的依赖. dependencies 相对于dependencyManagement,所有声明在dep ...

  9. Xcode 创建使用多个 target (1)

    前段时间,浏览了一个项目:手机和平板同时适配的.见识到了多个target 应用的妙处: 一个target 担任 手机开发,一个target 担任 平板开发,设计的很巧妙. 一口吃不成胖子,这篇先写 第 ...

  10. js中常见的字符串方法(3)

    match() match()方法只接受一个参数,要么是一个正则表达式,要么是一个 RegExp 对象. 调用这个方法本质上与调用RegExp的exec()方法相同, var text = " ...