据我所知,grails 2现在支持单例作用域控制器。我有一个要求使用这样的控制器,我有一个关于请求对象(和其他隐式对象)的问题
grails文档总是将请求对象称为实例变量,但在单例范围的控制器中使用这样的对象是不安全的。在单例范围控制器中处理隐式对象的推荐方法是什么?我尝试修改控制器的操作签名以接受请求对象作为参数(类似于标准的spring MVC),这看似起作用:
class MyController {
static scope = "singleton"
def list(request) {
// do something
}
}
但是我也注意到this.request
仍然存在,那么我怎样才能确定参数request
不仅仅是对this.request
的引用?
答案 0 :(得分:3)
无论哪种情况都没关系。请求对象使用ThreadLocal变量绑定,因此在所有情况下都可以安全地同时访问。