顯示具有 Hibernate 標籤的文章。 顯示所有文章
顯示具有 Hibernate 標籤的文章。 顯示所有文章

2015年12月17日 星期四

OpenSessionInViewFilter 的配置及替代方案

參考來源

Spring 為我們提供了一個叫做 OpenSessionInViewFilter 的Filter,他是標準的 Servlet Filter 所以我們把它按照規範配置到 web.xml 中方可使用。使用中我們必須配合使用 Spring 的 HibernateDaoSupport 來進行開發,也就是說,我們的dao層的類都要繼承於 HibernateDaoSupport,從中由 Spring 來控制 Hibernate 的 Session 在request來的時候開啟,走的時候關閉,保證了我們訪問data對象時的穩定性。

2015年12月15日 星期二

Spring、Hibernate中使用Ehcache Cache

EhCache是Hibernate的二級Cache技術之一,可以把查詢出來的data存儲在Memory或者disk,節省下次同樣查詢語句再次查詢database,大幅減輕Database壓力;

但這會有個缺點,  若直接從DB改資料時,  因被Query Cache住,  所以重新查詢時,  會查詢到舊有的資料, 需重啟server後,  重新bind資料,  才會取得最新資料,  否則皆需在web介面以系統面方式修改。

Google hibernate-generic-dao

Google hibernate-generic-dao

通用 GenericDao example

通用 GenericDao example - GitHub

EhCache簡介

二級cache
  1. EhCache是一個快速的、輕量級的、易於使用的、process的cache。它支持read-only和read/write cache,memory和disk cache。但是不支持Clustering。
  2. OSCache是另外一個開源的cache方案。它同時還支持JSP頁面或任意對象的cache。OSCache功能強大、靈活,和EHCache一樣支持read-only和read/write cache、支持memory和disk cache。同時,它還提供通過JGroups或JMS進行cluster的基本支持。
  3. SwarmCache 是一個簡單的、基於JavaGroups提供cluster的cache方案。支持read-only和nonstrict read/write cache。這種cache適用於讀操作遠遠高於寫操作頻率的應用。
  4. JBoss TreeCache 是一個強大的、可複製(同步或異步)和支持事務的cache。如果你需要一個真正的支持事務的cache架構,使用這個方案吧。

MemCached OsCache EhCache 區別


Memcache:

  1. 分散式memory cache system,佔用其他server的memory。很多互聯網,負載均衡三台(以三台為例),web server可以共享一台Memcache的資源。傳遞的訊息以key,value對的形式存儲。傳遞的數據要實現序列化。