欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 前端技术 > javascript >内容正文

javascript

Hibernate+Spring整合使用二级缓存

发布时间:2025/3/19 javascript 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Hibernate+Spring整合使用二级缓存 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1.选择缓存的实现 我们一般选择轻量级的EHCache,在hibernate.cft.xml里面的<session-factory>里面配置如下

    

  • <!--选择缓存实现-->  
  • <property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>  
  • <!--开启使用二级缓存-->  
  •  <property name="hibernate.cache.use_second_level_cache">true</property>  
  •  
  •  
  •  或者已经把hibernate整合到spring中去的,在spring的配置文件applicatioContext.xml中配置如下

     

  • <property name="hibernateProperties"> 
  •             <props> 
  •                 <!--此处用来定义hibernate的SessionFactory的属性:     
  •                     不同数据库连接,启动时选择create,update,create-drop--> 
  •                 <prop key="hibernate.dialect"> 
  •                     org.hibernate.dialect.MySQL5Dialect 
  •                 </prop> 
  •                 <prop key="hibernate.hbm2ddl.auto">update</prop> 
  •                 <prop key="hibernate.cache.provider_class"> 
  •                     org.hibernate.cache.EhCacheProvider 
  •                 </prop> 
  •                 <!-- 开启使用二级缓存 --> 
  •                 <prop key="hibernate.cache.use_second_level_cache">true</prop> 
  •                 <!-- 使用查询缓存 --> 
  •                 <prop key="hibernate.cache.use_query_cache">true</prop> 
  •             </props> 
  •         </property> 
  • 2,选择在相应的映射文件中或者说在对相应的表进行操作时使用二级缓存并指定缓存的策略,例如指定缓存策略为   read-write;

       

  • <?xml version="1.0"?> 
  • <!DOCTYPE hibernate-mapping PUBLIC  
  •     "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
  •     "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
  • <hibernate-mapping package="com.bbs.entity"> 
  •   <class name="User"> 
  •       <cache usage="read-write"/> 
  •    
  •      <id name="user_id"> 
  •         <generator class="identity"></generator> 
  •      </id> 
  •      <property name="user_name"></property> 
  •      <property name="user_password"></property> 
  •      <property name="user_mailbox"></property> 
  •      <property name="user_p_w_picpath"></property> 
  •      <property name="user_register_date"></property> 
  •      <property name="user_articles"></property> 
  •   </class> 
  • </hibernate-mapping> 
  • 3,在类路径下面进行EHCache的配置,建立ehchache.xml配置缓存的参数。
  • <ehcache> 
  •     <diskStore path="java.io.tmpdir" /> 
  •     <defaultCache maxElementsInMemory="10000" eternal="false" 
  •         timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true" 
  •         diskPersistent="false" diskExpiryThreadIntervalSeconds="120" 
  •         memoryStoreEvictionPolicy="LRU" /> 
  • </ehcache> 
  • 4.别忘了加相应的包:spring-framework-2.5.6\lib\ehcache\ehcache-1.5.0.jar 还有依赖包spring-framework-2.5.6\lib\concurrent\backport-util-concurrent.jar。

    配置完成了,不过我的数据库没设计好,昨天晚上一直是“too many connections”或者直接“out of memory”,现在考虑是用二级缓存,这种情况很少出现,不过提升的不是很高。

    转载于:https://blog.51cto.com/movedo/454064

    总结

    以上是生活随笔为你收集整理的Hibernate+Spring整合使用二级缓存的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。