在 Grails 中使 user/session 信息在整个应用程序中可用
Make user/session info available across the application in Grails
这是一个 class/flow 我试图解决的设计问题:
我正在尝试使用户的会话信息在我的 Grails 应用程序的整个应用程序中可用,而无需(或要求)在服务层和控制器之间传递 HttpSession。
目前,我有一个过滤器,一旦用户登录,所有与用户相关的信息都会映射到 UserSessionHelper class 中,然后我将那个 class 的实例添加到会话中,例如:
session.userInfo = new UserSessionHelper(name:"x", isActive: true)
我希望能够访问 session 对象 并且它的内容在我的应用程序中无处不在,而无需显式传递它(作为参数),方式与 grailsApplication 在整个 Grails 中可用。
有人可以给我一些关于如何以线程安全的方式完成此操作的提示吗?
我正在使用 Grails 2.4.2
谢谢。
有很多方法可以完成您所询问的各种事情,但了解具体细节会有所帮助。例如,您可能需要一个会话范围的 bean 来保存相关状态,然后在需要的任何地方访问该 bean。然后,您可以将该 bean 注入任何控制器、服务、标记库、其他 bean 等,无论您需要访问该状态的什么地方。
这是一个 class/flow 我试图解决的设计问题:
我正在尝试使用户的会话信息在我的 Grails 应用程序的整个应用程序中可用,而无需(或要求)在服务层和控制器之间传递 HttpSession。
目前,我有一个过滤器,一旦用户登录,所有与用户相关的信息都会映射到 UserSessionHelper class 中,然后我将那个 class 的实例添加到会话中,例如:
session.userInfo = new UserSessionHelper(name:"x", isActive: true)
我希望能够访问 session 对象 并且它的内容在我的应用程序中无处不在,而无需显式传递它(作为参数),方式与 grailsApplication 在整个 Grails 中可用。
有人可以给我一些关于如何以线程安全的方式完成此操作的提示吗?
我正在使用 Grails 2.4.2
谢谢。
有很多方法可以完成您所询问的各种事情,但了解具体细节会有所帮助。例如,您可能需要一个会话范围的 bean 来保存相关状态,然后在需要的任何地方访问该 bean。然后,您可以将该 bean 注入任何控制器、服务、标记库、其他 bean 等,无论您需要访问该状态的什么地方。