`
cyz001
  • 浏览: 42773 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

ehcache的简单应用

阅读更多

概述
Ehcache的类层次模型主要为三层,最上层的是CacheManager,他是操作Ehcache的入口。我们可以通过CacheManager.getInstance()获得一个单子的CacheManger,或者通过CacheManger的构造函数创建一个新的CacheManger。每个CacheManager都管理着多个Cache。而每个Cache都以一种类Hash的方式,关联着多个Element。而Element则是我们用于存放要缓存内容的地方。


配置文件

a)        参考:http://ehcache.sourceforge.net/documentation/configuration.html

b)        例子:

<ehcache>
	<defaultCache maxElementsInMemory="2" eternal="false"
		timeToIdleSeconds="1" timeToLiveSeconds="1" overflowToDisk="false"
		memoryStoreEvictionPolicy="LRU" />

	<cache name="sampleCache1" maxElementsInMemory="2" eternal="false"
		overflowToDisk="false" timeToIdleSeconds="1" timeToLiveSeconds="1"
		memoryStoreEvictionPolicy="LRU" />

</ehcache>



注:在ehcache的配置文件里面必须配置defaultCache。每个<cache>标签定义一个新的cache,属性的含义基本上可以从名字上得到,详细的说明可以参考上面的链接。


事例程序:

a)        例子:

public class Test {

     public static void main(String[] args) throws Exception {
         CacheManager manager = new CacheManager("ehcache.xml");
         Cache cache = manager.getCache("sampleCache1");

         for (int i = 0; i < 5; i++) {
              Element e = new Element("key" + i, "value" + i);
              cache.put(e);
         }

         List<String> keys = cache.getKeys();
         for (String key : keys) {
              System.out.println(key + "," + cache.get(key));
         }
     }
}





注:程序的流程也是比较明晰的,首先是获取一个CacheManager,这是使用Ehcache的入口,然后通过名字获取某个Cache,然后就可以对Cache存取Element。Cache使用类Hash的方式来管理Element。


事件处理

a)        说明:可以为CacheManager添加事件监听,当对CacheManager增删Cache时,事件处理器将会得到通知。要配置事件处理,需要通过ehcache的配置文件来完成。

b)        配置文件:

<ehcache>
<cacheManagerEventListenerFactory class="ehcache.CMELF"/>
</ehcache>



注:通过<cacheManagerEventListenerFactory>来注册事件处理器的工厂类。

c)        代码:

public class CMELF extends CacheManagerEventListenerFactory {

     @Override
     public CacheManagerEventListener createCacheManagerEventListener(
              Properties properties) {
         return new CMEL();
     }
}


class CMEL implements CacheManagerEventListener {
     public void dispose() throws CacheException {}
     public Status getStatus() {return null;}
     public void init() throws CacheException {}
     public void notifyCacheAdded(String cacheName) {
         System.out.println("Cache [" + cacheName + "] Added");
     }

     public void notifyCacheRemoved(String cacheName) {
         System.out.println("Cache [" + cacheName + "] Deleted");
     }

}

注:这个代码分为两部分,首先是一个工厂类,用于创建事件处理器事例,工厂类负责还需要管理并发之类的问题。


 

分享到:
评论

相关推荐

    Ehcache简单应用——RSSReaderTag

    NULL 博文链接:https://snowolf.iteye.com/blog/728877

    Ehcache缓存框架的简单应用

    Ehcache缓存框架的简单应用

    Ehcache分布式缓存与其在SpringBoot应用

    EhCache 是一个纯 Java 的进程内缓存框架,具有快速、...2)简单 3)多种缓存策略 4)缓存数据有两级:内存和磁盘,因此无需担心容量问题 5)缓存数据会在虚拟机重启的过程中写入磁盘 6)可以通过 RMI、可插入 API

    Java缓存框架 Ehcache.zip

    下图是 Ehcache 在应用程序中的位置: 主要的特性有: 1. 快速.2. 简单.3. 多种缓存策略4. 缓存数据有两级:内存和磁盘,因此无需担心容量问题5. 缓存数据会在虚拟机重启的过程中写入磁盘6. 可以通过RMI、可插入...

    EHCache的使用

    EHCache是来自sourceforge(http://ehcache.sourceforge.net/)的开源项目,也是纯Java实现的简单、快速的Cache组件。EHCache支持内存和磁盘的缓存,支持LRU、LFU和FIFO多种淘汰算法,支持分布式的Cache,可以作为...

    EhCache缓存技术

    快速简单,非常容易和应用集成。 2.支持多种缓存策略 。 3. 缓存数据有两级:内存和磁盘,因此无需担心容量问题 。 4. 缓存数据会在虚拟机重启的过程中写入磁盘 。 5. 可以通过RMI、可插入API等方式进行分布式...

    Ehcache分布式缓存入门案例demo_文件转树结构_

    Ehcache分布式缓存入门案例demo,简单易用上手快,帮助您快速解决应用中的单体缓存问题,提高系统响应速度。

    SpringAOP结合ehCache实现简单缓存实例

    NULL 博文链接:https://honda418.iteye.com/blog/354945

    JAVA编程之spring cache本机缓存应用

    JAVA编程之spring cache本机缓存应用 spring cache简单实用,简介: ...它不是具体的缓存实现,它只提供一整套的接口和代码规范、配置、注解等,用于整合各种缓存方案,比如Caffeine、Guava Cache、Ehcache。

    MF00501-JFinal-layui极速开发企业应用.zip

    技术栈:JFinal+JFinal-undertow+mysql+layui+jquery+ehcache+rsa(加密算法) JFinal-layui极速开发企业应用管理系统,是以JFinal+layui为核心的企业应用项目架构,利用JFinal的特性与layui完美结合,达到快速启动...

    JessMA Java Web 应用开发框架 (v3.2.2-20130815).pdf

    5) 优秀的使用体验:JessMA的设计目标之一是提供良好的开发体验,尽量减少应用程序开发者的工作,API的设计力求简单、完整、明确。同时,JessMA为应用开发提供了大量Util工具,用来处理应用程序开发过程中通常会遇到...

    Spring整合Ecache

    如果使用DiskCache的,在很频繁的应用中,很快磁盘会满。 2. 不能保证数据的安全:当突然kill掉java的时候,可能会产生冲突,EhCache的解决方法是如果文件冲突了,则重建cache。这对于Cache 数据需要保存的时候可能...

    YMP轻量级Java应用开发框架 v2.0.6

    YMP是一个非常简单、易用的一套轻量级JAVA应用开发框架,设计原则主要侧重于简化工作任务、规范开发流程、提高开发效率,让开发工作像搭积木一样轻松是我们一直不懈努力的目标!主要技术特点:采用组件化、模块化...

    简单配置 shiro + spring +springMVC+hibernate简单框架

    -- 单realm应用。如果有多个realm,使用‘realms’属性代替 --&gt; &lt;property name="realm" ref="authorizingRealm" /&gt; &lt;property name="cacheManager" ref="shiroCacheManager" /&gt; &lt;/bean&gt; 服务器 web.xml...

    grails-cache-manager:一个简单的管理界面,用于管理 Grails 应用程序中的各种缓存

    一个简单的管理界面,用于管理 Grails 应用程序中的各种缓存。 安装 要安装最新版本的插件,请将其添加到插件部分的BuildConfig.groovy中(确保使用最新版本): compile ' :cache-manager:1.0.0 ' 兼容性 该插件...

    spring整合其他框架

    spring整合activeMQ,cxf,mail,ehcache,quartz,shiro,struts2 ,hibernate,jpa,jedis等简单应用

    JAVA缓存概念体系及应用

    该压缩包中有一个WORD和一个PPT,WORD中介绍了通过单实例和简单LRU算法实现缓存。PPT中介绍了缓存体系,JVM内存模型,JCONSOLE监控工具的使用,Oscache缓存架构 Ehcache缓存架构 Memcached缓存架构 JiveCache缓存架构...

    基于SpringMVC+Shiro+Activiti 5.16 的简单OA,可以快速入门Activiti学习用

    基于SpringMVC+Shiro+Activiti 5.16 的简单OA,可以快速入门Activiti学习用。 此版本前台使用的是EasyUI。框架以Spring Framework为核心、Spring MVC作为模型视图控制器、Shiro作为权限框架、Hibernate作为数据库...

    Metrics:捕获 JVM 和应用程序级指标-开源

    借助 Jetty、Logback、Log4j、Apache HttpClient、Ehcache、JDBI、Jersey 等常用库模块和 Graphite 等报告后端,Metrics 为您提供全栈可见性。 Metrics 的中心库是 metrics-core,它提供了一些基本功能。 Metrics ...

    fast-stateless-api-authentication

    这是一个简单的 Java Web 应用程序,它演示了如何使用 UserCache 为 HTTP 基本身份验证配置 Spring Security,以便快速轻松地实现 API 身份验证。 看一下 SecurityConfig.java 和 WebConfig.java 关于应用程序: ...

Global site tag (gtag.js) - Google Analytics