此版本仍在开发中,尚未被视为稳定版本。如需最新稳定版本,请使用 Spring Boot 4.0.4!spring-doc.cadn.net.cn

Spring Session

Spring Boot 为一系列数据存储提供了 Spring Session 自动配置。 在构建 servlet 网络应用程序时,可以自动配置以下存储:spring-doc.cadn.net.cn

Servlet 自动配置取代了使用 @Enable*HttpSession 的需要。spring-doc.cadn.net.cn

如果类路径中仅存在一个 Spring Session 模块,Spring Boot 会自动使用该存储实现。 如果您有多个实现,Spring Boot 将按以下顺序选择特定的实现:spring-doc.cadn.net.cn

  1. Redisspring-doc.cadn.net.cn

  2. JDBCspring-doc.cadn.net.cn

  3. 如果Redis和JDBC都不可用,我们不配置一个 SessionRepositoryspring-doc.cadn.net.cn

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

每个存储库都有特定的附加设置。 例如,可以自定义 JDBC 存储库所用表的名称,如下例所示:spring-doc.cadn.net.cn

spring.session.jdbc.table-name=SESSIONS
spring:
  session:
    jdbc:
      table-name: "SESSIONS"

要设置会话超时时间,您可以使用 spring.session.timeout 属性。 如果在基于 Servlet 的 Web 应用程序中未设置该属性,则自动配置将回退至 server.servlet.session.timeout 的值。spring-doc.cadn.net.cn

您可以使用 @Enable*HttpSession(Servlet)或 @EnableRedisWebSession(响应式)来控制 Spring Session 的配置。 这将使自动配置退出。 之后,Spring Session 可通过该注解的属性进行配置,而无需使用前述的配置属性。spring-doc.cadn.net.cn