此版本仍在开发中,尚未被认为是稳定的。请使用最新的稳定版本 Spring Session 4.0.2spring-doc.cadn.net.cn

Spring Session

Rob Winch; Vedran Pavić; Jay Bryant; Eleftheria Stein-Kousathanaspring-doc.cadn.net.cn

Spring Session 提供了一组API和实现,用于管理用户会话信息。spring-doc.cadn.net.cn

Spring Session 提供了一组 API 和实现,用于管理用户会话信息,并且使其在支持集群会话时变得非常简单,无需绑定到特定的应用程序容器解决方案。 它还提供了透明集成:spring-doc.cadn.net.cn

了解 Spring Session 解决的问题

当用户与网络应用进行交互时,服务器会创建一个会话来跟踪其活动。 此会话可能会存储诸如用户偏好、登录状态和购物车内容等信息。 然而,在分布式环境中,会话可能存在问题,因为它们通常存储在服务器的内存中。spring-doc.cadn.net.cn

要更好地理解Spring Session解决的问题,请先查看以下图表:spring-doc.cadn.net.cn

In-Memory Sessions
Figure 1. 在内存中的会话

在上面的图中,每个Spring应用程序都在一个只有自己可以访问的地方存储会话,通常是服务器内存中,但在分布式环境中这可能会成为一个问题。 设想一种情况:当Spring App #2收到包含Session #3的请求时,该应用将无法读取会话数据,因为这些数据存储在Spring App #1的内存中。 为了解决这个问题,我们需要实现某种形式的共享会话存储,如下图所示:spring-doc.cadn.net.cn

Shared Session Storage
图 2. 共享会话存储

在上述配置完成后,会话对于所有能够访问会话存储的应用程序都是可用的。spring-doc.cadn.net.cn

Spring Session 提供了一层抽象,位于应用程序和会话管理之间。它允许会话数据存储在各种持久化存储中,例如关系型数据库、NoSQL 数据库等。spring-doc.cadn.net.cn

使用 Spring Session,您可以在不更改应用程序代码的情况下,根据使用的持久化存储来使用相同的 API 来管理会话。 这使得在不同存储之间切换变得更加容易。 Spring Session 还提供了会话过期以及跨上下文通信等功能,用于不同的 Web 应用程序之间的通信。spring-doc.cadn.net.cn

Spring Session 简化了在 Web 应用程序中管理用户会话的过程,使您能够更容易地专注于构建应用程序的核心功能。spring-doc.cadn.net.cn

这里是一些Spring Session 的常见使用场景:spring-doc.cadn.net.cn

  • 分布式Web应用程序:如果您有一个分布在多台服务器上的Web应用程序,管理用户会话可能会很具有挑战性。 Spring Session可以通过将会话数据存储在共享数据库或Redis中来帮助您,从而使所有服务器能够访问和更新会话数据。spring-doc.cadn.net.cn

  • Session 可扩展性:在具有许多并发用户的大规模 Web 应用程序中,将会话存储在服务器内存中可能会导致可扩展性问题。 Spring Session 允许您将会话数据存储在持久化存储中,从而提高可扩展性和降低内存溢出错误的风险。spring-doc.cadn.net.cn

  • 会话备份和恢复:将会话数据存储在持久化存储中还可以提供一种机制,用于在服务器故障或停机时备份和恢复会话数据。spring-doc.cadn.net.cn

Spring Session 社区

我们很高兴您能成为我们的社区一员。 以下部分提供了如何与Spring Session社区互动的额外信息。spring-doc.cadn.net.cn

支持

您可以通过在 Stack Overflow 上使用 spring-session 标签提问 来获取帮助。 同样,我们鼓励通过在 Stack Overflow 上回答问题来帮助他人。spring-doc.cadn.net.cn

源代码

问题跟踪

我们在 GitHub issues 中跟踪问题,请访问 github.com/spring-projects/spring-session/issuesspring-doc.cadn.net.cn

贡献指南

许可证

Spring Session 是开源软件,并且遵循 Apache 2.0 许可证spring-doc.cadn.net.cn

最低要求

Spring Session 的最小要求是:spring-doc.cadn.net.cn

在核心部分,Spring Session 只依赖于 spring-jcl。 要在不使用任何其他 Spring 依赖的情况下使用 Spring Session,请参见hazelcast 样例应用程序。