Web程式中的懶載入異常說明及解決方案

2022-05-15 11:48:58 字數 894 閱讀 6462

所謂懶載入(lazy)就是延時載入,延遲載入。

什麼時候用懶載入呢,我只能回答要用懶載入的時候就用懶載入。

至於為什麼要用懶載入呢,就是當我們要訪問的資料量過大時,明顯用快取不太合適,

因為記憶體容量有限 ,為了減少併發量,減少系統資源的消耗,

我們讓資料在需要的時候才進行載入,這時我們就用到了懶載入。懶載入的異常有很多種,你指的是不是session已經關閉的異常?因為那個初學者最容易遇到

情況是當你載入出乙個一對多關係的一這端的物件,然後在出了事務之後的地方,比如頁面上,還想再獲取多端物件裡面的除了id以外的屬性的時候,就會跑出這個異常。

我舉個例子,你有乙個 grade 物件關聯了 很多 student 物件,並且用的是懶載入

你在service裡面通過資料庫查詢獲得了乙個 grade物件,這個物件裡面有乙個setstudents 集合,但是你並沒有對這個物件做進一步的處理(比如 intialize之類的操作讓懶載入的**物件真正去例項化)

然後你到了頁面的展示的時候,去遍歷 students 這個集合,並且你試圖在頁面上顯示每個 student 的 name 屬性(這個屬性不是studentid) 這個時候就會丟擲session已經關閉的異常

在ssh框架中:

可直接可以使用opensessioninviewfilter

在配置檔案中配置
1

opensession

2class>org.springframework.orm.hibernate3.support.opensessioninviewfilter

3class>

4opensession

6*.action

7

web中的懶載入

在web應用程式中,系統的瓶頸常在於系統的響應速度。如果系統響應速度過慢,使用者就會出現埋怨情緒,系統的價值也因此會大打折扣。因此,提高系統響應速度,是非常重要的。web應用程式做的最多就是和後台資料庫互動,而查詢資料庫是種非常耗時的過程。當資料庫裡記錄過多時,查詢優化更顯得尤為重要。為了解決這種問...

iOS中的懶載入

通俗一點就是用到時再載入,而且只載入一次,其實就是所謂的重寫物件的get方法,當系統或者開發者呼叫物件的get方法時,再去載入物件。實現 重寫get方法時,先判斷物件當前是否為空,為空的話再去例項化物件 使用懶載入的好處 inte ce viewcontroller property nonatom...

Vue router中的懶載入

平時路由配置如下 import vue from vue import router from vue router import details from components details import home from components home vue.use router expo...