跳到主要内容
版本:4.0.2

Spring Session

QWen Max 中英对照 Spring Session

Spring Boot 为一系列数据存储提供了 Spring Session 自动配置。在构建 Servlet Web 应用程序时,可以自动配置以下存储:

  • Redis

  • JDBC

Servlet 自动配置取代了使用 @Enable*HttpSession 的需求。

如果 classpath 中存在单个 Spring Session 模块,Spring Boot 会自动使用该存储实现。如果你有多个实现,Spring Boot 将按照以下顺序选择特定的实现:

  1. Redis

  2. JDBC

  3. 如果 Redis 和 JDBC 均不可用,我们不会配置 SessionRepository

在构建响应式 Web 应用程序时,Redis 存储可以自动配置。这取代了使用 @EnableRedisWebSession 的需求。

每个存储都有特定的附加设置。例如,可以自定义 JDBC store 的表名,如下例所示:

spring.session.jdbc.table-name=SESSIONS

要设置会话的超时时间,可以使用 spring.session.timeout 属性。如果该属性未设置且使用的是 Servlet Web 应用程序,则自动配置将回退到 server.servlet.session.timeout 的值。

你可以使用 @Enable*HttpSession(Servlet)或 @EnableRedisWebSession(Reactive)来控制 Spring Session 的配置。这将使自动配置退避。随后,Spring Session 可以通过注解的属性进行配置,而不是使用前面所述的配置属性。