關於Jdon的CloseSessionInViewFilter
對Spring的OpenSessionInViewFilter導致效能問題早有耳聞,但是這個東東實在方便,所以一直沿用至今,幸好沒有遇到效能方面的問題。
但是,老貓我一直對它謹慎提防。
先解釋一下Spring的問題,在OpenSessionInViewFilter中,首先try塊中開啟了Session,然後doFilter執行請求,最後在finally中關閉Session。大體就是這樣,這段程式碼影響閱讀的障礙物挺多,什麼isSingleSession,Deferred之類的,但基本流程就是這樣的。Spring不管3721就開啟Session,如果這個時候遇到一點問題,比如網速慢,那麼就會導致長時間開啟資料庫連線,當然也就影響效能了。
CloseSessionInViewFilter稍有不同,它將開啟Session的任務交給DAO,好像就是那個HibernateTemplate中呼叫SessionProvider的時候,然後,Filter中只是負責關閉Session。
使用這兩個Filter有一個前提,尤其是OpenSessionInView,一定把UrlMapping設定為*.do或*.jsf之類的,要不,呵呵,一個gif請求都要開啟Hibernate...
Banq老大,在這個前提下,我有一個問題。當一個請求到達後,大致的過程是這樣的:Filter(Spring開啟Session)->Struts->DAO(JDon開啟Session)->渲染頁面->Filter(關閉Session)。只要Application收到請求,從Filter到Struts/JSF再到Service/DAO應該是非常快的,此時是不是CloseSessionInViewFilter的優勢就不明顯了?
不管怎樣,Banq老大的這個思路還是很讓人佩服呀,呵呵。
但是,老貓我一直對它謹慎提防。
先解釋一下Spring的問題,在OpenSessionInViewFilter中,首先try塊中開啟了Session,然後doFilter執行請求,最後在finally中關閉Session。大體就是這樣,這段程式碼影響閱讀的障礙物挺多,什麼isSingleSession,Deferred之類的,但基本流程就是這樣的。Spring不管3721就開啟Session,如果這個時候遇到一點問題,比如網速慢,那麼就會導致長時間開啟資料庫連線,當然也就影響效能了。
CloseSessionInViewFilter稍有不同,它將開啟Session的任務交給DAO,好像就是那個HibernateTemplate中呼叫SessionProvider的時候,然後,Filter中只是負責關閉Session。
使用這兩個Filter有一個前提,尤其是OpenSessionInView,一定把UrlMapping設定為*.do或*.jsf之類的,要不,呵呵,一個gif請求都要開啟Hibernate...
Banq老大,在這個前提下,我有一個問題。當一個請求到達後,大致的過程是這樣的:Filter(Spring開啟Session)->Struts->DAO(JDon開啟Session)->渲染頁面->Filter(關閉Session)。只要Application收到請求,從Filter到Struts/JSF再到Service/DAO應該是非常快的,此時是不是CloseSessionInViewFilter的優勢就不明顯了?
不管怎樣,Banq老大的這個思路還是很讓人佩服呀,呵呵。
相關文章
- 什麼是Jdon My Soul?
- 關於AI、關於chatGPT的幾十種用法AIChatGPT
- 關於IT,關於技術
- 關於 DOM 的理解
- js關於this的疑惑JS
- 關於React的refReact
- 關於Remix的使用REM
- 關於GSoc的反思
- python關於+=的陷阱Python
- 關於Vuex的理解Vue
- 關於servlet的理解Servlet
- 關於 Python 的 importPythonImport
- 關於-this指向的理解
- 關於盒模型相關的問題模型
- 關於Python Number 相關的知識!Python
- 關於++[[]][+[]]+[+[]]
- 關於
- 關於~
- 關於new Object的探究Object
- 關於hapypack的認識
- 關於css 的垂直居中CSS
- Android關於Typedarray的使用Android
- 關於難點的思考
- 關於Cookie的那些事Cookie
- 關於NSUserDefaults的祕密
- 關於ModeAnalytics的學習
- 關於vuex的錯誤Vue
- 關於Javascript的des加密JavaScript加密
- 關於 Angular 中的 AuthGuardAngular
- 關於人生的規劃
- 關於Validation的方法使用
- 關於 IPython 的簡介Python
- 關於面試的思考面試
- 2.2.1 關於CDB的特性
- 關於HTTP的學習HTTP
- 關於協程的理解
- 關於calc的踩坑
- 關於π的近似值
- java 關於fileinputstream的使用Java