2010-07-21 50 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