全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Spring 整合 Hibernate 时启用二级缓存实例详解

Spring 整合 Hibernate 时启用二级缓存实例详解

写在前面:

  1. 本例使用 Hibernate3 + Spring3;
  2. 本例的查询使用了 HibernateTemplate;

1. 导入 ehcache-x.x.x.jar 包;

2. 在 applicationContext.xml 文件中找到 sessionFactory 相应的配置信息并在设置 hibernateProperties 中添加如下代码:

<!-- 配置使用查询缓存 --> 
<prop key="hibernate.cache.use_query_cache">true</prop> 
<!-- 配置启用二级缓存 --> 
<prop key="hibernate.cache.use_second_level_cache">true</prop> 
<!-- 配置二级缓存的提供商 --> 
<prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop> 



3. 由于查询使用了 hibernateTemplate,所以还要在 hibernateTemplate 中做相应配置,找到 hibernateTemplate 的配置项,添加如下代码:

<!-- 使用查询缓存 --> 
<property name="cacheQueries"> 
  <value>true</value> 
</property> 


4. 在要缓存的实体类中加入如*解:

@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) 

注:

  usage 可以有以下几个取值:

  • CacheConcurrencyStrategy.NONE:不使用缓存,默认;
  • CacheConcurrencyStrategy.READ_ONLY:只读模式,若对缓存的数据进行修改操作会抛出异常;
  • CacheConcurrencyStrategy.NONSTRICT_READ_WRITE:不严格的读写模式,不会对缓存的数据加锁;
  • CacheConcurrencyStrategy.READ_WRITE:读写模式,在更新缓存的时候会把缓存里面的数据换成一个锁,其它事务如果去取相应的缓存数据,发现被锁了,直接就去数据库查询;
  • CacheConcurrencyStrategy.TRANSACTIONAL:事务模式,支持事务,当事务发生回滚时,缓存中的数据也回滚,只支持 JPA 。

5. 配置 ehcache.xml 文件:

<ehcache> 
  <!-- 指定一个文件目录,当EHCache把数据写到硬盘上时,将把数据写到这个目录下 --> 
  <diskStore path="java.io.tmpdir"/> 
  <!--  
    name 设置缓存的名字,他的取值为类的完整名字或者类的集合的名字; 
    maxElementsInMemory 设置基于内存的缓存可存放的对象的最大数目 
    eternal 如果为true,表示对象永远不会过期,此时会忽略timeToIdleSeconds和timeToLiveSeconds,默认为false; 
    timeToIdleSeconds 设定允许对象处于空闲状态的最长时间,以秒为单位; 
    timeToLiveSeconds 设定对象允许存在于缓存中的最长时间,以秒为单位; 
    overflowToDisk 如果为true,表示当基于内存的缓存中的对象数目达到maxElementsInMemory界限,会把溢出的对象写到基于硬盘的缓存中; 
   --> 
  <!-- 设置缓存的默认数据过期策略 --> 
  <defaultCache 
    maxElementsInMemory="1000" 
    eternal="false" 
    timeToIdleSeconds="1200" 
    timeToLiveSeconds="1200" 
    overflowToDisk="false" 
  /> 
  <!-- 设定具体的第二级缓存的数据过期策略 --> 
  <cache name="com.shawearn.model.User" 
    maxElementsInMemory="1000" 
    eternal="false" 
    timeToIdleSeconds="3000" 
    timeToLiveSeconds="3000" 
    overflowToDisk="false" /> 
</ehcache> 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Spring  # 整合  # Hibernate  # 时启用二级缓存实例详解  # 启用二级缓存  # SSH整合中 hibernate托管给Spring得到SessionFactory  # 详解JAVAEE——SSH三大框架整合(spring+struts2+hibernate)  # SSH框架网上商城项目第1战之整合Struts2、Hibernate4.3和Spring4.2  # Spring4整合Hibernate5详细步骤  # spring+hibernate 两种整合方式配置文件的方法  # Java框架篇:Spring+SpringMVC+hibernate整合开发  # Spring+Hibernate+Struts(SSH)框架整合实战  # Spring与Hibernate整合事务管理的理解  # Spring MVC+FastJson+hibernate-validator整合的完整实例教程  # struts+spring+hibernate三个框架的整合  # Spring和Hibernate的整合操作示例  # 写到  # 会把  # 本例  # 几个  # 使用了  # 并在  # 要在  # 希望能  # 会对  # 就去  # 谢谢大家  # 永远不会  # 抛出  # 上时  # 值为  # 将把  # 加锁  # 中做  # 类中  # 默认为 


相关文章: 惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?  SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?  建站之星代理商如何保障技术支持与售后服务?  宁波免费建站如何选择可靠模板与平台?  沈阳制作网站公司排名,沈阳装饰协会官方网站?  北京专业网站制作设计师招聘,北京白云观官方网站?  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】  如何构建满足综合性能需求的优质建站方案?  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  C++时间戳转换成日期时间的步骤和示例代码  如何正确下载安装西数主机建站助手?  如何选择高效响应式自助建站源码系统?  动图在线制作网站有哪些,滑动动图图集怎么做?  建站主机选购指南:核心配置优化与品牌推荐方案  如何在万网开始建站?分步指南解析  商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?  IOS倒计时设置UIButton标题title的抖动问题  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  详解jQuery停止动画——stop()方法的使用  建站主机如何选?性能与价格怎样平衡?  建站主机服务器选型指南与性能优化方案解析  ,南京靠谱的征婚网站?  上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?  建站ABC备案流程中有哪些关键注意事项?  建站主机选哪种环境更利于SEO优化?  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  如何打造高效商业网站?建站目的决定转化率  PHP正则匹配日期和时间(时间戳转换)的实例代码  微信小程序 input输入框控件详解及实例(多种示例)  如何快速上传自定义模板至建站之星?  如何在阿里云虚拟主机上快速搭建个人网站?  如何通过宝塔面板实现本地网站访问?  建站org新手必看:2024最新搭建流程与模板选择技巧  如何选择CMS系统实现快速建站与SEO优化?  如何快速搭建高效WAP手机网站吸引移动用户?  建站之星代理费用多少?最新价格详情介绍  昆明网站制作哪家好,昆明公租房申请网上登录入口?  广州营销型建站服务商推荐:技术优势与SEO优化解析  如何使用Golang安装API文档生成工具_快速生成接口文档  如何自定义建站之星模板颜色并下载新样式?  如何选择高效便捷的WAP商城建站系统?  网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  零基础网站服务器架设实战:轻量应用与域名解析配置指南  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  宝塔面板创建网站无法访问?如何快速排查修复? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。