Spring MVC 闪存属性FlashAttributes并发问题

flash属性的概念在其他许多的Web框架中也存在,并且实践证明有时可能会导致并发上的问题。这是因为从定义上讲,flash属性保存的时间是到下个请求接收到之前。问题在于,“下一个”请求不一定刚好就是你要重定向到的那个请求,它有可能是其他的异步请求(比如polling请求或者资源请求等)。这会导致flash属性在到达真正的目标请求前就被移除了。为了减少这个问题发生的可能性,重定向视图 RedirectView 会自动为一个 FlashMap 实例记录其目标重定向URL的路径和查询参数。然后,默认的 FlashMapManager 会在为请求查找其该“传进”的 FlashMap 时,匹配这些信息。这并不能完全解决重定向的并发问题,但极大程度地减少了这种可能性,因为它可以从重定向URL已有的信息中来做匹配。因此,一般只有在重定向的场景下,我们才推荐使用flash属性。

阅读更多
文章标签: 摘抄
个人分类: 摘抄 Spring
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭