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++】C++中explicity关键字的使用

    读者可以尝试预言一下这段代码的输出: #include <iostream> using namespace std; class Complex { private: double re ...

  2. 列表初始化 分析initializer_list<T>的实现

    列表初始化(1)_统一初始化 1. 统一初始化(Uniform Initialization) (1)在C++11之前,很多程序员特别是初学者对如何初始化一个变量或对象的问题很容易出现困惑.因为可以用 ...

  3. Multitenancy

    Multitenancy https://www.gartner.com/en/information-technology/glossary/multitenancy 公用一套物理环境,划分出不同的 ...

  4. Operation之其他实用操作符

    delay 该操作符会将 Observable 的所有元素都先拖延一段设定好的时间, 然后才将他们发送出来 Observable.of(1,2,3,4) .delay(5, scheduler: Ma ...

  5. EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器解决方案之点播分享

    背景介绍 EasyDSS流媒体服务器软件,提供一站式的视频上传.转码.点播.直播.时移回放等服务,极大地简化了开发和集成的工作.其中,点播功能主要包含:上传.转码.分发.直播功能,主要包含:直播.录像 ...

  6. 为Endnote中的期刊名称添加缩写期刊名

    为Endnote中的期刊名称添加缩写期刊名 Endnote - tools - Open term lists - Journals term lists - lists -- Journals - ...

  7. Vue+abp树形表格

    项目中需要用到树形表格,其他同学找了一个ZkTable,我也就跟着用了,不太好用,有更好的记得联系我.先说下缺点,如果这些不能满足你,后面也没必要看了. 缺点如下(也可能我不会用,如果你会一定记得告诉 ...

  8. [转帖]在VirtualBox Linux 7u2 中安装Oracle RAC 12.2.0.1.0

    https://xiaoyu.blog.csdn.net/article/details/81980936

  9. ajax中如何使用全局变量?

    在ajax中一般都是采取默认的异步请求,但是有时候参数是需要做到全局通用,这时候发起同步请求. 如下: $.ajax({ type:"post", url:"url路径& ...

  10. golang错误处理和资源管理