我正在使用Play Framework 2.5與Java。我必須從一個非常慢的數據庫中檢索一些數據,並在我的應用程序的幾個部分中需要這些數據,特別是在我的Java控制器和Scala模板中。在當前請求中存儲對象
將我的數據對象作爲參數傳遞給每個方法會非常「雜亂」。
我想要的是從數據庫中檢索數據,將它「綁定」到當前請求並將其用在我的控制器和模板中。它應該存活一個HTTP請求。並行HTTP請求應該從數據庫重新加載數據。但我不想在同一個請求中兩次加載相同的數據。
什麼是用Play存儲我的數據的正確位置?
目前我在我的控制器和模板中使用了一個像「Helper.getHeavyObject()」這樣的助手方法。該幫助程序從Redis緩存中檢索數據,但我想擺脫它。這是太多的開銷。目前,我正在從Redis爲單個請求加載相同對象達6次。一定會有更好的辦法。
謝謝!
> Http有一個public Map args;你可以在模板和控制器上訪問它 完美的,我會嘗試。這是我正在尋找的。 >嘗試使用播放緩存 目前我正在使用Redis緩存,並且我正在查詢它最多6次,因爲這個對象很荒謬。 謝謝! –
schube
如果您使用動作組合,則可以在地圖上添加該值,但請記住,在每次新請求時,都會執行查詢並將其添加到地圖中,這是由於該遊戲的無狀態設計。 – pedroct92