Grails singleton范围控制器和请求对象

时间:2012-09-01 14:25:36

标签: grails

据我所知,grails 2现在支持单例作用域控制器。我有一个要求使用这样的控制器,我有一个关于请求对象(和其他隐式对象)的问题

grails文档总是将请求对象称为实例变量,但在单例范围的控制器中使用这样的对象是不安全的。在单例范围控制器中处理隐式对象的推荐方法是什么?我尝试修改控制器的操作签名以接受请求对象作为参数(类似于标准的spring MVC),这看似起作用:

class MyController {
  static scope = "singleton"

  def list(request) {
   // do something  
  }
}

但是我也注意到this.request仍然存在,那么我怎样才能确定参数request不仅仅是对this.request的引用?

1 个答案:

答案 0 :(得分:3)

无论哪种情况都没关系。请求对象使用ThreadLocal变量绑定,因此在所有情况下都可以安全地同时访问。