国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

Spring 整合 Hibernate 時啟用二級緩存實例詳解

2024-09-05 00:22:52
字體:
來源:轉載
供稿:網友

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> 

Spring,整合,Hibernate,時啟用二級緩存實例詳解,啟用二級緩存

3. 由于查詢使用了 hibernateTemplate,所以還要在 hibernateTemplate 中做相應配置,找到 hibernateTemplate 的配置項,添加如下代碼:

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

Spring,整合,Hibernate,時啟用二級緩存實例詳解,啟用二級緩存

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> 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關教程知識閱讀請移步到JSP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁明县| 临高县| 讷河市| 兴安盟| 自贡市| 汉川市| 孝感市| 巴南区| 伊宁县| 南汇区| 贵港市| 南汇区| 聂荣县| 灌阳县| 永福县| 商丘市| 西林县| 政和县| 十堰市| 抚远县| 屏东市| 交城县| 武乡县| 黄龙县| 沾化县| 体育| 湖南省| 射洪县| 赤壁市| 蒲城县| 正阳县| 上虞市| 乐陵市| 华宁县| 柞水县| 长岛县| 双辽市| 太白县| 华池县| 栾川县| 兴安县|