如果有人问你 JFinal 如何集成 EhCache,把这篇文章甩给他
ccwgpt 2024-10-25 10:38 29 浏览 0 评论
废话不多说,就说一句:在 JFinal 中集成 EhCache,可以提高系统的并发访问速度。
可能有人会问 JFinal 是什么,EhCache 是什么,简单解释一下。
JFinal 是一个基于Java 语言的极速 Web 开发框架,用起来非常爽,谁用谁知道。EhCache 是一个纯 Java 的进程内缓存框架,具有快速、精干的特点,用起来非常爽,谁用谁知道。
JFinal 本身已经集成了 EhCache 这个缓存插件,但默认是没有启用的。那怎么启用呢?
请随我来。
01、在 pom.xml 中加入 EhCache 依赖
02、在 JFinalConfig 中配置 EhCachePlugin
基于 JFinal 的 Web 项目需要创建一个继承自 JFinalConfig 类的子类,该类用于对整个 Web 项目进行配置。
03、添加 ehcache.xml
在项目的 src 目录 / resources 目录下添加 ehcache.xml 文件,该文件的初始内容如下所示。
简单解释一下常用的配置项,否则大家在配置的时候容易犹豫不决。
1)maxEntriesLocalHeap:内存中最大缓存对象数
2)eternal:true 表示对象永不过期,此时会忽略 timeToIdleSeconds 和 timeToLiveSeconds 属性,默认为 false
3)timeToIdleSeconds:对象最近一次被访问后的闲置时间,如果闲置的时间超过了 timeToIdleSeconds 属性值,这个对象就会过期,EhCache 将把它从缓存中清空;即缓存被创建后,最后一次访问时间到缓存失效的时候之间的间隔,单位为秒(s)
4)timeToLiveSeconds:对象被存放到缓存中后存活时间,如果存活时间超过了 timeToLiveSeconds 属性值,这个对象就会过期,EhCache 将把它从缓存中清除;即缓存被创建后,能够存活的最长时间,单位为秒(s)
假如我们现在增加以下配置:
结合之前的默认缓存配置,再来对比介绍下,大家就完全掌握了。
1)name 为该缓存的名字,后续使用缓存的时候要用到。
2)overflowToDisk:true 表示内存中缓存的对象数目达到了 maxEntriesLocalHeap 界限后,会把溢出的对象写到硬盘缓存中。此时的对象必须实现要实现 Serializable 接口
3)diskPersistent:是否缓存虚拟机重启时的数据
再来理解一下 timeToIdleSeconds 和 timeToLiveSeconds 这两个配置项。
以上表示,一个数据被添加进缓存后,该数据能够在缓存中存活的最长时间为 600 秒()timeToLiveSeconds);在这 600 秒内,假设不止一次去缓存中取该数据,那么相邻 2 次获取数据的时间间隔如果小于 300 秒(timeToIdleSeconds),则能成功获取到数据;但如果最近一次获取到下一次获取的时间间隔超过了 300 秒,那么,将得到 null,因为此时该数据已经被移出缓存了。
04、使用 CacheKit 操作缓存
CacheKit 类是 JFinal 提供的缓存操作工具类,使用起来非常简便。
CacheKit 中有两个最重要的方法:
1)get(String cacheName, Object key),从 cache 中取数据。
2)put(String cacheName, Object key, Object value) ,将数据放入 cache 中。
参数 cacheName 与 ehcache.xml 中的 <cache name="keywordsCache" …> name 属性值对应,这个很好理解。
参数 key 是指取值用到的 key;参数 value 是被缓存的数据,这个其实也好理解。比如在上面的代码中,我们使用了 keywordsCache 这个配置项,在里面放了一个 HashMap,key 为 keywordMap,value 就是 map 这个对象。
JFinal 内部提供了很多使用 Ehcache 的工具方法,比如:
List<Keywords> keywordList = dao.findByCache("keywordsCache", "keywordList", "select * from keywords");
这段代码的作用就是,当我们要从数据库中查询 Keywords 的时候,先从 Ehcache 缓存中取,如果缓存失效的话,再从数据库中取。
我是怎么知道的呢?当然不是靠猜的,我们来看一下源码。
05、最后
当数据的查询频率很高,远大于修改的频率,就要使用缓存了,这可以在很大程度上提高系统的性能。那现在我就提一个问题了,假如现在要修改一下数据,是先更新 DB,还是先更新缓存呢?
最后,我自己是一名从事了多年开发的JAVA老程序员,辞职目前在做自己的java私人定制课程,今年年初我花了一个月整理了一份最适合2019年学习的java学习干货,可以送给每一位喜欢java的小伙伴,想要获取的可以关注我的头条号并在后台私信我:java,即可免费获取。
作者:沉默王二
来源:掘金
相关推荐
- PPT 139 | 粉色渐变小清新春暖花开PPT模板
-
春暖花开,这是你制作PPT的世界粉色渐变小清新春暖花开PPT模板,共22P适用场合:工作总结/个人汇报/演讲培训等喜欢的可以赞一个更多类似PPT模板,搜【小清新】也可以,在线编辑,一键下载...
- 框架完整岗位竞聘报告PPT模板
-
需要源文件de可私!氢元素为您提供PPT模板、PNG元素免费、办公模板。工作述职汇报、计划总结、培训课件、节日庆典、营销策划、商业计划、宣传企业、产品发布、个人简历、毕业答辩、岗位竞聘、护理培训,...
- PPT与视频相关的几个操作要点
-
都知道PPT中可以插入视频,而2010及以上版本插入后还可以对视频做各种处理,另外别忘了还可以直接将PPT导出成视频格式。插入视频方式往PPT中插入视频,除了【插入】|【视频】|【PC上的视频】这种方...
- 书写主题品管圈汇报PPT模板,主题框架,简约设计,品管圈必备
-
Hello大家好,我是帮帮。今天跟大家分享一张书写主题品管圈汇报PPT模板,主题框架,简约设计,品管圈必备。有个好消息!为了方便大家更快的掌握技巧,寻找捷径。请大家点击文章末尾的“了解更多”,在里面找...
- 【教学成果框架图】国家级获奖案例解析与可视化方案(实战版)
-
教学成果逻辑框架图的绘制精髓总结为“逻辑为骨,视觉为翼”。下面结合具体案例,手把手教你制作既专业又美观的成果框架图。一、设计理念:教育逻辑与视觉传达的融合教学成果框架图需体现三重逻辑:教育目标层(立德...
- 年中汇报PPT的超强框架来袭,职场人士的必备神器!
-
这套框架堪称完美,适用于各类工作汇报场景。它逻辑清晰,内容丰富,涵盖个人介绍、工作回顾、业绩成果、问题分析以及未来工作计划等常见汇报模块。PPT已包含600多页,所有元素均可自由编辑,数据图表也能轻松...
- 三个说话框架,提升逻辑思维,让你清晰表达
-
#暑期创作大赛#建立清晰的逻辑思维:三个说话框架的力量我们生活在一个充满语言交流的世界中。无论是在学校,工作场所,还是在社交场合,我们都需要有效地表达我们的观点和想法。然而,许多人都有表达上的困扰,他...
- 《石头记》人物原型故事之逻辑框架(一)
-
话说空空道人将《石头记》带往人世,又经东鲁孔梅溪醒题《风月宝鉴》,曹雪芹定名《金陵十二钗》,加之警幻仙子提醒防备新谱《红楼梦十二支曲》。蛮以为他人在闲适风月故事之于能够了然背后真实故事,怎耐一万年老怪...
- 如何搭建高效沟通与精彩演讲的逻辑结构
-
对于大多数人而言,说话有逻辑这件事难于登天。很多人在演讲、工作汇报中都会遇到诸如“我不知道你在说什么”、“你的重点是什么”、“你说话毫无逻辑”此类的评价,被认为是说话缺乏逻辑的人。那么如何成为一个说话...
- 「书讯」论证逻辑框架下说理写作模式研究
-
《论证逻辑框架下说理写作模式研究》作者:金建龙出版日期:2018年11月开本:16开出版社:经济管理出版社小编推荐提升大学生批判意识和理性说理能力是新时代背景下高等教育中通识教育和博雅教育的全新探索...
- 【一元脑花】青少年4D逻辑训练的基本框架
-
一、核心训练模块多维认知构建资源分布图谱:通过分析社会资源层级与流动规律,建立立体空间认知模型2DOC时空维度整合:将历史局势演变(纵向时间轴)与未来趋势预判(横向可能性轴)结合训练2DOC动态干预系...
- 提升写作逻辑,这5个框架你搭建好了吗?
-
每个人都有写作的愿望,也都想表达心中浩荡的情感,但多年过后,许多人依旧卡在“无话可说”“写不出结构”的怪圈里。有人慨叹:“浮云一别后,流水十年间”,梦想与现实总有一道沟壑横亘——此岸是满腹心事,彼岸...
- 学霸:2天吃透初一语文上学期核心预习知识框架图|暑假弯道超车
-
学霸:2天吃透初一语文上学期核心预习知识框架图|暑假弯道超车。具体如下:查看作者的个人主页获悉剩余的~...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- mfc框架 (52)
- abb框架断路器 (48)
- beego框架 (52)
- java框架spring (58)
- grpc框架 (65)
- tornado框架 (48)
- 前端框架bootstrap (54)
- orm框架有哪些 (51)
- 知识框架图 (52)
- ppt框架 (55)
- 内联框架 (52)
- cad怎么画框架 (58)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)