新闻中心

Hibernate二级缓存ehcache.xml配置文件怎么写

2025-12-12
浏览次数:
返回列表
ehcache.xml 是 Ehcache 1.x/2.x 的 XML 配置文件,需置于 classpath 根目录;Hibernate 4.x/5.2- 依赖它实现二级缓存,而 Hibernate 5.3+ 推荐 JCache 抽象层。

hibernate二级缓存ehcache.xml配置文件怎么写

<p>ehcache.xml 是 Ehcache 1.x(常用于老版本 Hibernate,如 4.x)的缓存配置文件,放在 <strong>classpath 根目录</strong>(如 src/main/resources)下即可被 Hibernate 自动加载。注意:Ehcache 2.x 仍兼容此格式;Ehcache 3.x 已弃用 XML 配置,改用 J*a 或 YAML,且 Hibernate 5.3+ 默认推荐使用 JCache(JSR-107)抽象层。</p>

<H3>基础 ehcache.xml 结构(适配 Hibernate 4.x / 5.2 及以下)</H3>
<p>以下是最简可用、符合 Hibernate 二级缓存要求的配置示例:</p>
<pre class="brush:php;toolbar:false;"><font size="2"><?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="ehcache.xsd">

  <!-- 磁盘缓存路径,需确保应用有写权限 -->
  <diskStore path="j*a.io.tmpdir/ehcache"/>

  <!-- 默认缓存策略(Hibernate 未显式指定缓存策略时使用)-->
  <defaultCache
      maxEntriesLocalHeap="1000"
      eternal="false"
      timeToIdleSeconds="300"
      timeToLiveSeconds="600"
      overflowToDisk="true"
      diskPersistent="false"
      diskExpiryThreadIntervalSeconds="120"
      memoryStoreEvictionPolicy="LRU"/>

  <!-- 为具体实体类或集合配置缓存(必须)-->
  <cache name="com.example.User"
      maxEntriesLocalHeap="500"
      eternal="false"
      timeToIdleSeconds="60"
      timeToLiveSeconds="300"
      overflowToDisk="true"/>

  <!-- 缓存集合(如 User.roles)-->
  <cache name="com.example.User.roles"
      maxEntriesLocalHeap="100"
      eternal="false"
      timeToIdleSeconds="30"
      timeToLiveSeconds="120"
      overflowToDisk="true"/>

</ehcache></font>

关键配置项说明

  • diskStore path:建议用 j*a.io.tmpdir/ehcache 或绝对路径(如 /var/cache/myapp/ehcache),避免硬编码用户目录
  • maxEntriesLocalHeap:堆内最大缓存条目数,避免 OOM;按实体热度合理设置,不要盲目调大
  • eternal="false":必须设为 false,否则 timeToIdleSeconds / timeToLiveSeconds 不生效
  • timeToIdleSeconds:对象空闲多久后过期(不被访问)
  • timeToLiveSeconds:对象创建后多久强制过期(不管是否访问)
  • overflowToDisk:堆满后是否溢出到磁盘(开启需确保 diskStore 可写)
  • cache name:必须与实体类全限定名(package.ClassName)或集合属性路径(package.ClassName.propertyName)完全一致

Hibernate 端需配合的配置

仅配置 ehcache.xml 不够,还需在 Hibernate 配置中启用二级缓存:

微软爱写作 微软爱写作

微软出品的免费英文写作/辅助/批改/评分工具

微软爱写作 130 查看详情 微软爱写作
  • hibernate.cfg.xml 或 application.properties 中添加:
<font size="2"><property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
<!-- 或用 SingletonEhCacheRegionFactory(单例模式,适合单应用)--></font>
  • 实体类上标注缓存策略:
<font size="2">@Entity
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) // 或 READ_ONLY, NONSTRICT_READ_WRITE
public class User { ... }</font>

常见问题提醒

  • 类名拼写错误(大小写、包名)、集合路径写成 User.roles 而非 com.example.User.roles → 缓存不生效
  • 忘记在实体类加 @Cache 注解 → 即使配置了 cache name 也无效
  • Ehcache jar 版本与 Hibernate 不匹配(如 Hibernate 4.3.x 应用 ehcache-core 2.6.x,不兼容 3.x)
  • 未设置 hibernate.cache.use_second_level_cache=true → 二级缓存被忽略

基本上就这些。配置不复杂但容易忽略细节,建议配完后通过日志(开启 org.hibernate.cache DEBUG)验证缓存命中情况。

以上就是Hibernate二级缓存ehcache.xml配置文件怎么写的详细内容,更多请关注其它相关文章!


# 解决这个问题  # 广告设计小模板网站推广  # 阿拉尔正规网站建设设计  # 茶业店营销推广方案  # 黒帽seo网  # 建设公司网站入账  # 高质量网站如何优化推广  # 沧州seo营销推广外包公司  # 华网天下seo第一  # 营销家纺小店怎么做推广  # 抖音营销号推广规则  # 设为  # 放在  # 多久  # java  # 如何用  # 抛出  # 实体类  # 不匹配  # 微软  # overflow  # 常见问题  # 配置文件  # ai  # app  # 编码  # js 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: iwriter统一登录平台 iwrite账号密码登录页面  我的世界mc.js免费游戏直接能玩 我的世界mc.js小游戏免费秒玩入口  在Go Martini框架中高效服务动态生成图像的实践指南  QQ邮箱网页版入口页面 QQ邮箱在线登录入口官网  汽水音乐车机版8.9下载 汽水音乐车机版8.9版本安装入口  汽水音乐车机版横屏版7.1 汽水音乐车机版横屏版下载入口  Tailwind CSS line-clamp 布局问题解析与修复指南  163邮箱注册官网 免费申请163个人邮箱  漫蛙官网正版漫画入口 漫蛙2官方网页登录地址  React/Next.js中实现列表项的动态选择与移动  小米汽车11月交付量突破40000台!雷军:将继续努力  现代化 SciPy 一维插值:interp1d 的替代方案与最佳实践  QQ邮箱电脑版登录入口_QQ邮箱官方网站登录平台  Python字典中优雅地迭代剩余元素的方法  Win11怎么关闭快速启动_Win11彻底关机设置教程  AO3官网镜像链接 Archive of Our Own同人文在线浏览  单12V-2&#215;6实现为RTX 5090供电750W!甚至都没敢跑分  Yandex浏览器官方网页版入口 Yandex浏览器最新版官网  Win10如何清理注册表垃圾 Win10注册表维护与优化指南【慎用】  Django表单验证失败时保留用户输入数据的最佳实践  CSS布局中意外空白:解决padding-top导致的顶部间距问题  圆通快递查询实时追踪 圆通物流包裹状态快速查看  PowerPoint如何制作滚动字幕结尾彩蛋_PowerPoint路径动画实现平滑滚动字幕效果  J*aScript实现动态背景色下的文本与按钮颜色自适应调整  百度网盘网页版入口 百度网盘网页版官方登录网址  Golang如何使用net/url解析URL_Golang URL解析与处理方法  Yandex官网搜索引擎免登录_俄罗斯Yandex一键直达入口  Python类型检查:优化关联可选属性的Mypy推断策略  期待已久:小米17 Ultra、小米首款NAS本月登场  怎么在浏览器上运行HTML文件_浏览器运行HTML文件技巧【技巧】  在哪找SublimeJ远程工具_SFTP插件配置教程  AO3网页版合集入口 Archive of Our Own同人作品浏览指南  J*aScript对象创建方式_J*aScript设计模式应用  蛙漫漫画免费阅读入口_蛙漫官方正版无广告纯净版  在Typer应用中优雅地处理和重组任意命令行参数  Win10文件资源管理器“此电脑”分组怎么关 Win10恢复经典视图【技巧】  漫蛙MANWA漫画主页官方入口 漫蛙漫画最新在线阅读地址  抖音隐秘迷城小游戏入口_ 抖音冒险解谜小游戏秒玩  铁路12306官网网页端快速入口 铁路12306官方首页登录教程  taptap防沉迷怎么解除 taptap解除健康系统限制说明【2025最新】  PHP 枚举:根据字符串获取枚举案例的策略与实现  “在文档元素之后找到了标记”是什么错误? 检查并修复XML中多个根元素的3个方法  在Qt QML中通过Python字典动态更新TextEdit内容的教程  QQ邮箱登录官网首页 腾讯QQ邮箱网页入口  J*aScript生成器_j*ascript异步迭代  Windows10怎么开启存储感知 Windows10系统设置自动清理临时文件释放C盘空间【教程】  outlook中文官网入口地址 outlook官方中文版直达首页链接  AI抖音网页版免费视频入口 AI抖音网页端最新视频实时观看  照顾宝贝2小游戏点击立即在线玩  铁路12306的积分有效期是多久_铁路12306积分有效期说明 

搜索