1
用于记忆无副作用且仅查找的服务方法的语法是什么?这个备忘录会不会在会话中持续存在,还是会在网络世界中毫无用处?有没有在grails应用程序中使用.memoize()的好地方的例子?Grails:使用.memoize()的例子?
class DetermineStuffService{
def figureThisOut(def whatever){
//look up all sorts of stuff and do some heavy side-effect free processing
return nastyHashmap
}
}
因此,在一个控制器可不知何故,我打电话DetermineStuffService.figureThisOut(someRandomObject)
和采取的.memoize()
优势?
我打算接受这个答案。要清楚:我们同意.memoize()在正常的web应用程序中没有意义,因为它违背了无状态的原则,是正确的? – Mikey 2012-03-16 21:55:11
那么,缓存是有状态的定义。然而,Spring缓存的方式比'memoize()'更适合grails/spring,因为它将状态保存在一个地方,正确处理集群,并且不需要使用闭包而不是方法。 – ataylor 2012-03-16 22:01:05