Hibernate持久層緩存的級別:
(1)事務級別
該級別緩存中的緩存對象只能被當前事務使用,每個事務都有各自的緩存,緩存中的數據通常以關聯對象的形式保存。同時被緩存對象的生命周期依賴于當前事務的生命周期,當前事務結束時,該緩存中緩存對象的生命周期也會結束。事務級別的緩存通常使用內存作為保存緩存對象的存儲介質,Hibernate的一級緩存(Session緩存)即該級別的緩存。
(2)應用(進程)級別
該級別緩存中對象可以被當前應用(進程)內的所有事務共享訪問,被緩存對象的生命周期與當前應用相同。當應用結束時,緩存對象的生命周期結束。如果當前應用是一個分布式應用,則不能使用該級別的緩存,這種級別的緩存使用內存或硬盤作為緩存對象的存儲介質。
(3)分布式級別
如果當前應用部署在多臺服務器的分布式(集群)環境下,則當前應用可以使用分布式級別的緩存緩存持久化對象。分布式緩存中緩存的數據會被一臺或者多臺服務器共享。如果緩存數據發生變化,則更新后的緩存數據會同步到集群中的每臺服務器中,進而保證緩存數據的一致性。
Hibernate的二級緩存可以是應用級別或者分布式級別的緩存,完全依賴于第三方緩存組件的具體實現。
Hibernate沒有提供自身產品級別的二級緩存,而是在設計上利用第三方成熟的緩存組件實現。為了集成不同的第三方緩存組件
Hibernate提供了org.hibernate.cache.CacheProvider接口用來作為緩存組件與Hibernate之間的適配器。在實際開發中,
Hibernate二級緩存組件如表:
緩存名稱
對應的適配器類
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 星老師