ehcache缓存的使用及配置
来源:互联网 发布:nginx 多个域名站点 编辑:程序博客网 时间:2024/05/13 01:31
一.介绍与应用场景
ehcache是一开源缓存工具,其许可证为Apache License, Version 2.0,非常友好的许可。在 sourceforge.NET 上可找到它的最新版本。
缓存应用在多个领域并发挥作用,ehcache可应用于数据库访问缓存,安全认证缓存,web缓存,soap 和 RESTFul 服务缓存,应用程序持久对象缓存以及分布式缓存。
二.架设开发环境
无它,只需把ehcache的相关jar包放到classpath下,把配置文件ehcache.xml放在classpath下就可以进行应用开发了。下面是配置文件中默认配置的xml节点的内容
ehcache.xml文件配置
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd" updateCheck="false"> <diskStore path="java.io.tmpdir"/> <defaultCache maxElementsInMemory="20000" eternal="false" timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true" maxElementsOnDisk="10000000" diskPersistent="false" diskExpiryThreadIntervalSeconds="120" memoryStoreEvictionPolicy="LRU" /> <cache name="eternalCache" maxElementsInMemory="20000" eternal="true" overflowToDisk="true" diskPersistent="false" timeToLiveSeconds="0" diskExpiryThreadIntervalSeconds="120" /></ehcache>放在ServletContextListener实现类中启动,这里我不使用spring。需要的话你可以放在spring的配置文件中。
package com.dm.core.listener;import com.dm.core.system.task.AutoTradeTask;import net.sf.ehcache.CacheManager;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import java.net.URL;import java.util.Calendar;import java.util.Date;import java.util.Timer;/** * @version 1.0 * @project: autoTrade * @author:QC * @date:2017/8/4 * @time:11:13 */public class AutoTradeListener implements ServletContextListener { /** * 定时器 */ private Timer timer; @Override public void contextInitialized(ServletContextEvent servletContextEvent) { System.out.println("-------------AutoTradeListener.init-------------"); //初始化缓存对象 CacheManager ehcacheManager = createCache(); Calendar calendar = Calendar.getInstance(); Date firstTime = calendar.getTime(); //定义定时器,同时传入缓存对象 timer = new Timer(); long period = 1000 * 5; timer.schedule(new AutoTradeTask(ehcacheManager), firstTime, period); } @Override public void contextDestroyed(ServletContextEvent servletContextEvent) { timer.cancel(); // 定时器销毁 //关闭缓存 CacheManager.getInstance().shutdown(); } /** * 创建缓存对象 * * @return */ public CacheManager createCache() { URL url = getClass().getResource("/ehcache.xml");// CacheManager ehcacheManager = CacheManager.create(url);// ehcacheManager.addCache("eternalCache"); return CacheManager.create(url); }}
web.xml中加入
用法:<listener> <listener-class>com.dm.core.listener.AutoTradeListener</listener-class></listener>
必须要有的属性:
name: cache的名字,用来识别不同的cache,必须惟一。
maxElementsInMemory: 内存管理的缓存元素数量最大限值。
maxElementsOnDisk: 硬盘管理的缓存元素数量最大限值。默认值为0,就是没有限制。
eternal: 设定元素是否持久话。若设为true,则缓存元素不会过期。
overflowToDisk: 设定是否在内存填满的时候把数据转到磁盘上。
- //1.
- //创建CacheManager单例对象,使用默认配置
- CacheManager.create();
- String[] cacheNames1 = CacheManager.getInstance().getCacheNames();
- //关闭
- CacheManager.getInstance().shutdown();
- //2.
- //用默认配置创建对象可用此创建多例
- CacheManager manager2 = new CacheManager();
- String[] cacheNames2 = manager2.getCacheNames();
- manager2.shutdown();
- //3.加载配置的方式
- //3.1 用默认配置加载在上面已经提到。即需要在classpath下放置ehcache.xml配置文件
- //3.2 用指定配置文件路径的方式创建
- CacheManager manager31 = new CacheManager("src/ehcache.xml");
- manager31.shutdown();
- //3.2 用classpath下的配置文件生成
- URL url = UsingTheCacheManager.class.getClassLoader().getResource("/ehcache.xml");
- CacheManager manager32 = new CacheManager(url);
- manager32.shutdown();
- //3.3 通过输入流生成
- InputStream fis = new FileInputStream(new File("src/config/ehcache.xml").getAbsolutePath());
- try {
- CacheManager manager33 = new CacheManager(fis);
- manager33.shutdown();
- } finally {
- fis.close();
- }
- //4. 以编程的方式添加和删除cache
- CacheManager singletonManager4 = CacheManager.create();
- //4.1 用默认配置添加
- singletonManager4.addCache("test41");
- Cache test41 = singletonManager4.getCache("test41");
- System.out.println(test41 != null);
- //4.2 创建一个cache并添加到CacheManager
- Cache memoryOnlyCache = new Cache("test42", 5000, false, false, 5, 2);
- singletonManager4.addCache(memoryOnlyCache);
- Cache test42 = singletonManager4.getCache("test42");
- //4.3 删除cache
- singletonManager4.removeCache("sampleCache1");
- singletonManager4.shutdown();
阅读全文
0 0
- ehcache缓存的使用及配置
- ehcache缓存的详细配置及ehcache.jar下载
- EHCache缓存的配置
- 1.0Java缓存-Ehcache配置详解及CacheManager使用
- ehcache缓存的使用
- ehcache 缓存的使用
- Ehcache缓存的使用
- ehcache 缓存的使用
- ehcache缓存的使用
- Ehcache缓存的使用
- ehcache缓存介绍及使用
- SpringMVC缓存管理及配置Ehcache缓存
- EHcache配置及使用
- jcs、ehcache的配置及使用
- ehcache缓存的详细配置
- SSH架构下ehcache缓存模块的配置使用
- Ehcache页面缓存的使用
- Ehcache页面缓存的使用
- Oracle之索引
- 技术推动移动游戏的进程
- Java--反射的逐步理解
- 非递归中序遍历
- 大数(正整数)除法之多精除以单精
- ehcache缓存的使用及配置
- 程序员的出路
- Python3.6用Pyinstaller打包的解决办法
- LINUX下操作GIT远程仓库与本地仓库同步
- java访问权限控制
- lua与c交互
- Device Tree(一):背景介绍
- 求一个无序数组的中位数
- idea使用maven创建web工程