2012-07-19 53 views
1

場景: 我有存儲在數據庫中的州(美國)的列表。我需要在form.jsp中顯示狀態列表。我查詢數據庫並獲取referenceData方法中的狀態列表,以便在窗體加載時可以使用狀態列表。Spring - referenceData最佳實踐

問題: 由於referenceData是在每個頁面刷新時執行的,是不是每次刷新都要拖動查詢數據庫? Spring會在內部緩存還是每次都是昂貴的數據庫查詢?

什麼是填充狀態的最佳方式下拉式表單加載在Spring中?

+0

你不告訴我們你是如何得到狀態的,所以很難回答。如果你沒有在任何地方配置任何緩存,它將不會被緩存到任何地方。 – 2012-07-19 20:17:54

回答

1

如果不明確詢問,Spring不會緩存任何內容。另一方面,您可以配置持久性提供程序(例如Hibernate query cache)或使用內置的彈簧caching abstraction

查詢每個頁面上的數據庫刷新是矯枉過正的嗎?在你的情況下:固定列表很少發生變化,並且只有很少的項目 - 我甚至會說加載一次並在應用程序的整個生命週期中保留它。如果需要修改,請設置後門。或者使用非常長的到期日期的緩存。

另一方面,緩存通常很痛苦,特別是當緩存驗證發揮作用時。但在你的情況下,有什麼可以錯誤的? 着名的遺言

+0

這是美國的州名單。不要以爲這會在不久的將來改變頁面之間的更新!該列表存儲在數據庫中。整齊的一個地方供所有應用程序訪問。所以,我需要查詢數據庫的列表並填充ModelMap ...但只是不想查詢每個刷新。任何想法在這種情況下最好的做法是什麼? – rprab 2012-07-19 20:59:36

+0

@rprab:再看看我的帖子。我實際上建議使用一些緩存或簡單地在啓動時加載列表並將其保存在內存中。該清單很小且不變,足以使這種方法切實可行。 – 2012-07-19 21:24:49