对于最新的稳定版本,请使用 Spring Boot 3.4.0spring-doc.cadn.net.cn

Spring Session

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

servlet 自动配置取代了使用@Enable*HttpSession.spring-doc.cadn.net.cn

如果 Classpath 上存在单个 Spring Session 模块,则 Spring Boot 会自动使用该 store 实现。 如果您有多个实现,则 Spring Boot 使用以下 Sequences 来选择特定实现:spring-doc.cadn.net.cn

  1. Redisspring-doc.cadn.net.cn

  2. JDBCspring-doc.cadn.net.cn

  3. Hazelcastspring-doc.cadn.net.cn

  4. MongoDB 数据库spring-doc.cadn.net.cn

  5. 如果 Redis、JDBC、Hazelcast 和 MongoDB 都不可用,我们不会配置SessionRepository.spring-doc.cadn.net.cn

在构建反应式 Web 应用程序时,可以自动配置以下 store:spring-doc.cadn.net.cn

reactive 自动配置取代了使用@Enable*WebSession.spring-doc.cadn.net.cn

与 Servlet 配置类似,如果你有多个实现,Spring Boot 使用以下 Sequences 来选择特定的实现:spring-doc.cadn.net.cn

  1. Redisspring-doc.cadn.net.cn

  2. MongoDB 数据库spring-doc.cadn.net.cn

  3. 如果 Redis 和 MongoDB 都不可用,我们不会配置ReactiveSessionRepository.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

你可以使用 Spring Session 的配置来控制@Enable*HttpSession(servlet) 或@Enable*WebSession(反应式)。 这将导致自动配置回退。 然后可以使用 Comments 的属性而不是前面描述的配置属性来配置 Spring Session。spring-doc.cadn.net.cn