2010-07-21 47 views
0

我想在整個請求中緩存一個使用api的dto。我嘗試訪問服務中的請求變量,但它不起作用。grails中每個請求的緩存數

另外我曾嘗試創建一個服務請求範圍,但它在Spring創建階段出現錯誤。

有些事情是這樣的:http://jira.codehaus.org/browse/GRAILS-4148

你能不能給我任何指針?

+0

如果您發佈當前非工作代碼以及發生錯誤,您將發現您將獲得更多幫助。也就是說,我建議在resources.groovy中創建一個Spring緩存bean,然後將dto推到那個位置。 – billjamesdev 2010-07-21 21:51:13

+0

我已經添加了更多信息@比爾詹姆斯 – user2427 2010-07-21 22:45:34

回答

0
  1. 請求變量僅在​​中提供。
  2. 您有錯誤,因爲您的程序不知道如何初始化服務中的請求變量。

您可以自由地將請求變量傳遞給任何服務方法作爲參數。

你有2個緩存解決方案:

  1. 使用EhCache緩存Hibernate查詢。
  2. 使用SpringCache來緩存整個方法(返回的結果)。

P.S.我不是EhCache + Grails捆綁包的大專家,但在我看來 - SprigCache比EhCache更靈活(可調整),但這兩個提供者有着非常不同的使用目的。並且請記住,SpringCache基於EhCache :)

+0

Ehcache在中間放置了一個動態代理。而且grails中的堆棧跟蹤已經不再清晰了。我正在尋找更明確的東西,我不介意寫一些代碼。 – user2427 2010-07-21 22:43:53

+0

另外我得到的對象不在本地數據庫中,它消耗了一個休息api。 – user2427 2010-07-21 22:45:12

+0

我一直在閱讀ehcache的文檔。我打算使用ehcache,但沒有Spring IOC,謝謝 – user2427 2010-07-26 15:50:28