2017-03-02 64 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作用域是嚴格實例特定的,不能在不使用會話關聯性的情況下適用於多個服務器實例。

相關問題