Grails如何为Singleton控制器提供`params`? (Grails内部)

Grails如何为Singleton控制器提供`params`? (Grails内部),第1张

概述如果我通过以下方式将Grails控制器设为单例: static scope = "singleton" … Grails如何将params变量暴露给我的控制器的动作,其中params是特定于请求的? 我会理解params是否作为变量传递给我的动作方法,但是这里params只是可用的并且是范围内的(并且对于同时请求是不同的,尽管事实上我的控制器只有一个实例). 这是如何在引擎盖下实施的? 每个请求都 如果我通过以下方式将Grails控制器设为单例:

static scope = "singleton"

… Grails如何将params变量暴露给我的控制器的动作,其中params是特定于请求的?

我会理解params是否作为变量传递给我的动作方法,但是这里params只是可用的并且是范围内的(并且对于同时请求是不同的,尽管事实上我的控制器只有一个实例).

这是如何在引擎盖下实施的?

解决方法 每个请求都有自己的线程,因此请求,响应,参数,会话等可用,无论控制器是单例还是为每个请求创建新的.如果这些变量是类中的字段会有所不同,但它们不是.

在引擎盖下,这是通过AST转换实现的,该转换将org.codehaus.groovy.grails.plugins.web.API.ControllersAPI混合到控制器类中,这会添加getParams()等方法(可以将其用作params属性) ).这些调用RequestContextHolder.currentRequestAttributes()来获取线程本地信息.

总结

以上是内存溢出为你收集整理的Grails如何为Singleton控制器提供`params`? (Grails内部)全部内容,希望文章能够帮你解决Grails如何为Singleton控制器提供`params`? (Grails内部)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1224902.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存