2017-03-02 61 views
2

我们向我们的grails 3应用程序添加了spring-session,并且Flash消息/错误停止显示。看着它看起来像它只是在内存中的地图源,虽然我不知道如果坚持会话时被序列化:是否为多个服务器实例使用grails flash作品?

https://github.com/grails/grails-core/blob/master/grails-web-common/src/main/groovy/org/grails/web/servlet/GrailsFlashScope.java#L45

我想知道,如果在运行时,闪光范围只适用管理会话的单个实例,或者例如,如果在具有多个实例并且没有会话亲和性的tomcat集群中,那么闪存范围仍然有效?

回答

2

Spring-session目前不允许变更会话对象performance reasons。但是,您可以使用简单的过滤器自行保存 - 或使用spring-session grails plugin

我个人使用spring-session依赖并从插件中获取HttpSessionSynchronizer筛选器 - 使用它,因为它是使用spring-session进行flash工作的唯一部分。

+0

你是否专门为闪光灯范围做了这个,或者你是否暗示这是使用闪光消息的替代方法? – brub

+0

flash范围在会话中,这将使会话对象像以前一样工作。虽然性能下降(在大多数情况下,可以忽略不计)。 – erichelgeson

+0

为了清楚我仍然使用弹簧会话 - 添加过滤器只是让它按照您的预期行事。 – erichelgeson

1

Flash作用域是严格实例特定的,不能在不使用会话关联性的情况下适用于多个服务器实例。

相关问题