1

我知道 grails 2 现在支持单例范围控制器。我需要使用这样的控制器,并且我对请求对象(和其他隐式对象)有疑问

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

class MyController {
  static scope = "singleton"

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

但是我也注意到它this.request仍然存在,那么我如何确定参数request不仅仅是对 的引用this.request

4

1 回答 1

3

无论哪种情况都没有关系。请求对象是使用 ThreadLocal 变量绑定的,因此在所有情况下并发访问都是安全的。

于 2012-09-01T15:29:21.207 回答