濮阳杆衣贸易有限公司

主頁 > 知識(shí)庫 > JSP 開發(fā)之hibernate配置二級(jí)緩存的方法

JSP 開發(fā)之hibernate配置二級(jí)緩存的方法

熱門標(biāo)簽:海外圖書館地圖標(biāo)注點(diǎn) 電話機(jī)器人需要使用網(wǎng)絡(luò)嗎 南通通訊外呼系統(tǒng)產(chǎn)品介紹 電銷機(jī)器人免培訓(xùn) 給地圖標(biāo)注得傭金 自繪地圖標(biāo)注數(shù)據(jù) 如何看懂地圖標(biāo)注點(diǎn) 潤滑油銷售電銷機(jī)器人 外呼系統(tǒng)使用方法

JSP 開發(fā)之hibernate配置二級(jí)緩存的方法

hibernate二級(jí)緩存也稱為進(jìn)程級(jí)的緩存或SessionFactory級(jí)的緩存。

二級(jí)緩存是全局緩存,它可以被所有的session共享。

二級(jí)緩存的生命周期和SessionFactory的生命周期一致,SessionFactory可以管理二級(jí)緩存。

常用的緩存插件 Hibernater二級(jí)緩存是一個(gè)插件,下面是幾種常用的緩存插件:

  • EhCache:可作為進(jìn)程范圍的緩存,存放數(shù)據(jù)的物理介質(zhì)可以是內(nèi)存或硬盤,對Hibernate的查詢緩存提供了支持。
  • OSCache:可作為進(jìn)程范圍的緩存,存放數(shù)據(jù)的物理介質(zhì)可以是內(nèi)存或硬盤,提供了豐富的緩存數(shù)據(jù)過期策略,對Hibernate的查詢緩存提供了支持。
  • SwarmCache:可作為群集范圍內(nèi)的緩存,但不支持Hibernate的查詢緩存。
  • JBossCache:可作為群集范圍內(nèi)的緩存,支持事務(wù)型并發(fā)訪問策略,對Hibernate的查詢緩存提供了支持。

如何在程序里使用二級(jí)緩存:

首先在hibernate.cfg.xml開啟二級(jí)緩存


hibernate-configuration> 
  session-factory> 

   ...... 

   !-- 開啟二級(jí)緩存 --> 
   property name="hibernate.cache.use_second_level_cache">true/property> 
   !-- 啟動(dòng)"查詢緩存"如果想緩存使用findall()、list()、Iterator()、createCriteria()、createQuery()等方法獲得的數(shù)據(jù)結(jié)果集,必須配置此項(xiàng)--> 
   property name="hibernate.cache.use_query_cache">true/property> 
   !-- 設(shè)置二級(jí)緩存插件EHCache的Provider類--> 
   !-- property name="hibernate.cache.provider_class"> 
     org.hibernate.cache.EhCacheProvider 
   /property> --> 
   !-- 二級(jí)緩存區(qū)域名的前綴 --> 
   !--property name="hibernate.cache.region_prefix">test/property>--> 
   !-- 高速緩存提供程序 --> 
   property name="hibernate.cache.region.factory_class"> 
     net.sf.ehcache.hibernate.EhCacheRegionFactory 
   /property> 
   !-- Hibernate4以后都封裝到org.hibernate.cache.ehcache.EhCacheRegionFactory --> 
   !-- 指定緩存配置文件位置 --> 
   !-- property name="hibernate.cache.provider_configuration_file_resource_path"> 
     ehcache.xml 
   /property> --> 
   !-- 強(qiáng)制Hibernate以更人性化的格式將數(shù)據(jù)存入二級(jí)緩存 --> 
   property name="hibernate.cache.use_structured_entries">true/property> 

   !-- Hibernate將收集有助于性能調(diào)節(jié)的統(tǒng)計(jì)數(shù)據(jù) --> 
   property name="hibernate.generate_statistics">true/property> 

   ...... 

  /session-factory> 
/hibernate-configuration> 

然后是ehcache配置(ehcache.xml)

cache參數(shù)詳解:

● name:指定區(qū)域名
● maxElementsInMemory :緩存在內(nèi)存中的最大數(shù)目
● maxElementsOnDisk:緩存在磁盤上的最大數(shù)目
● eternal :設(shè)置是否永遠(yuǎn)不過期
● overflowToDisk : 硬盤溢出數(shù)目
● timeToIdleSeconds :對象處于空閑狀態(tài)的最多秒數(shù)后銷毀
● timeToLiveSeconds :對象處于緩存狀態(tài)的最多秒數(shù)后銷毀
● memoryStoreEvictionPolicy:緩存算法,有LRU(默認(rèn))、LFU、LFU

關(guān)于緩存算法,常見有三種:

● LRU:(Least Rencently Used)新來的對象替換掉使用時(shí)間算最近很少使用的對象
● LFU:(Least Frequently Used)替換掉按命中率高低算比較低的對象
● LFU:(First In First Out)把最早進(jìn)入二級(jí)緩存的對象替換掉

Xml代碼

?xml version="1.0" encoding="UTF-8"?> 
ehcache> 
 !--如果緩存中的對象存儲(chǔ)超過指定的緩存數(shù)量的對象存儲(chǔ)的磁盤地址--> 
 diskStore path="D:/ehcache"/> 

 !-- 默認(rèn)cache:如果沒有對應(yīng)的特定區(qū)域的緩存,就使用默認(rèn)緩存 --> 
 defaultCache maxElementsInMemory="10000" 
        eternal="false" 
        timeToIdleSeconds="300"  
        timeToLiveSeconds="600" 
        overflowToDisk="false"/> 
 !-- 指定區(qū)域cache:通過name指定,name對應(yīng)到Hibernate中的區(qū)域名即可--> 
 cache name="cn.javass.h3test.model.UserModel" 
        eternal="false" 
        maxElementsInMemory="100" 
        timeToIdleSeconds="1200" 
        timeToLiveSeconds="1200" 
        overflowToDisk="false"> 
 /cache> 
 /ehcache> 

在每個(gè)實(shí)體的hbm文件中配置cache元素,usage可以是read-only或者是read-write等4種。

Xml代碼

class> 
!-- 設(shè)置該持久化類的二級(jí)緩存并發(fā)訪問策略 read-only read-write nonstrict-read-write transactional--> 
    class name="cn.java.test.model.User" table="TBL_USER"> 
       cache usage="read-write"/> 
    ......  
  /class> 
/hibernate-mapping> 

**也可以用Hibernate注解配置緩存實(shí)體類** 

**Java代碼 
@Entity  
@Table  
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE) 
public class User implements Serializable {  
  private static final long serialVersionUID = -5121812640999313420L; 
  private Integer id; 
  private String name; 

  ...... 
}**

以上就是hibernate 二級(jí)緩存的兩種實(shí)現(xiàn)方法,本站關(guān)于JSP hibernate開發(fā)的文章還有很多,希望大家多多搜出查閱,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

您可能感興趣的文章:
  • 詳細(xì)解讀Hibernate的緩存機(jī)制
  • hibernate查詢緩存詳細(xì)分析
  • 詳解Hibernate注解方式的二級(jí)緩存
  • 詳解spring boot集成ehcache 2.x 用于hibernate二級(jí)緩存
  • java中hibernate二級(jí)緩存詳解
  • 詳解Hibernate緩存與性能優(yōu)化
  • Spring 整合 Hibernate 時(shí)啟用二級(jí)緩存實(shí)例詳解
  • Hibernate緩存機(jī)制實(shí)例代碼解析

標(biāo)簽:大連 內(nèi)江 南京 黃石 樂山 貸款邀約 廣州 銅川

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《JSP 開發(fā)之hibernate配置二級(jí)緩存的方法》,本文關(guān)鍵詞  JSP,開,發(fā)之,hibernate,配置,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《JSP 開發(fā)之hibernate配置二級(jí)緩存的方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于JSP 開發(fā)之hibernate配置二級(jí)緩存的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    通渭县| 沁水县| 博野县| 广汉市| 北京市| 南岸区| 冕宁县| 西宁市| 马尔康县| 宁海县| 连江县| 泰和县| 双城市| 郑州市| 洛南县| 延庆县| 武宁县| 望都县| 沾化县| 彭泽县| 万宁市| 宣汉县| 惠州市| 扶风县| 鄯善县| 依安县| 建瓯市| 和平区| 克山县| 拜泉县| 托克托县| 东阿县| 赞皇县| 阳高县| 洮南市| 牙克石市| 葫芦岛市| 沂源县| 蒲城县| 胶南市| 虎林市|