Hibernate持久層緩存的級別:
(1)事務(wù)級別
該級別緩存中的緩存對象只能被當前事務(wù)使用,每個事務(wù)都有各自的緩存,緩存中的數(shù)據(jù)通常以關(guān)聯(lián)對象的形式保存。同時被緩存對象的生命周期依賴于當前事務(wù)的生命周期,當前事務(wù)結(jié)束時,該緩存中緩存對象的生命周期也會結(jié)束。事務(wù)級別的緩存通常使用內(nèi)存作為保存緩存對象的存儲介質(zhì),Hibernate的一級緩存(Session緩存)即該級別的緩存。
(2)應(yīng)用(進程)級別
該級別緩存中對象可以被當前應(yīng)用(進程)內(nèi)的所有事務(wù)共享訪問,被緩存對象的生命周期與當前應(yīng)用相同。當應(yīng)用結(jié)束時,緩存對象的生命周期結(jié)束。如果當前應(yīng)用是一個分布式應(yīng)用,則不能使用該級別的緩存,這種級別的緩存使用內(nèi)存或硬盤作為緩存對象的存儲介質(zhì)。
(3)分布式級別
如果當前應(yīng)用部署在多臺服務(wù)器的分布式(集群)環(huán)境下,則當前應(yīng)用可以使用分布式級別的緩存緩存持久化對象。分布式緩存中緩存的數(shù)據(jù)會被一臺或者多臺服務(wù)器共享。如果緩存數(shù)據(jù)發(fā)生變化,則更新后的緩存數(shù)據(jù)會同步到集群中的每臺服務(wù)器中,進而保證緩存數(shù)據(jù)的一致性。
Hibernate的二級緩存可以是應(yīng)用級別或者分布式級別的緩存,完全依賴于第三方緩存組件的具體實現(xiàn)。
Hibernate沒有提供自身產(chǎn)品級別的二級緩存,而是在設(shè)計上利用第三方成熟的緩存組件實現(xiàn)。為了集成不同的第三方緩存組件
Hibernate提供了org.hibernate.cache.CacheProvider接口用來作為緩存組件與Hibernate之間的適配器。在實際開發(fā)中,
Hibernate二級緩存組件如表:
緩存名稱
對應(yīng)的適配器類
Hashtable
org.hibernate.cache.HashtableCacheProvider
EHCache
org.hibernate.cache.EhCacheProvider
OSCache
org.hibernate.cache.OSCacheProvider
SwarmCache
org.hibernate.cache.SwarmCacheProvider
JBoss Cache 1.x
org.hibernate.cache.TreeCacheProvider
Jboss Cache 2
org.hibernate.cache.jbc2.JBossCacheRegionFactory
您正在看的文章來自瘋狂軟件教育中心 www.fkjava.org
信息咨詢:Q564205990 星老師