1
我有託管BackBean上的方法getStudents,我打電話給getstudents,它會調用數據庫並獲取數據。用戶界面顯示正常,但由於它需要太多時間來加載頁面,導致性能問題。請告訴我如何處理這個性能問題。如何提高加載性能
我有託管BackBean上的方法getStudents,我打電話給getstudents,它會調用數據庫並獲取數據。用戶界面顯示正常,但由於它需要太多時間來加載頁面,導致性能問題。請告訴我如何處理這個性能問題。如何提高加載性能
你不應該在getter方法中做業務邏輯。你應該初始化列表中@PostConstruct
方法或吸氣做延遲加載:
private List myList;
@PostConstruct
public void init() {
// init my List
}
// getter and setter
@PostConstruct
方法管理的bean實例化後調用。我建議你在這個方法中初始化,而不是在構造函數中。當您在支持bean生命期間更改列表時,應該在更改時更新它。您可以添加由用戶創建的數據,也可以選擇在插入值後再次調用數據庫。你必須擔心這一點,沒有自動化。
首先檢查您是否正在執行'只需要列選擇查詢'或'選擇整個表格'這將給您提供不必要的數據,這會影響頁面加載時間。這僅僅是一個原因。可能有其他依賴於您的代碼 – SRy 2013-03-12 05:06:06
@ SrinivasR:我只打電話給需要的專欄..在我的情況下,我只是獲得學生ID。這種getstudent方法已用於各種頁面。我的後端bean是會話作用域。每次調用getter方法時,它都會調用DB獲取學生列表。 – shreekanth 2013-03-12 05:27:56
也許你對bean範圍沒有正確的想法。會話有限域bean構造函數只會調用一次。如果你在構造函數中調用數據庫,會話中的數據將被加載。它不會再次調用該方法 – SRy 2013-03-12 05:30:08