Spring Session
Spring Boot 为各种数据存储提供了 Spring Session 自动配置。在构建 Servlet Web 应用程序时,可以自动配置以下存储
-
Redis
-
JDBC
Servlet 自动配置取代了使用 @Enable*HttpSession 的需求。
如果类路径中存在单个 Spring Session 模块,Spring Boot 会自动使用该存储实现。如果您有多个实现,Spring Boot 会按以下顺序选择特定实现
-
Redis
-
JDBC
-
如果 Redis 和 JDBC 均不可用,我们不配置
SessionRepository。
在构建响应式 Web 应用程序时,可以自动配置 Redis 存储。这取代了使用 @EnableRedisWebSession 的需求。
每个存储都有特定的附加设置。例如,可以自定义 JDBC 存储的表名,如以下示例所示
-
属性
-
YAML
spring.session.jdbc.table-name=SESSIONS
spring:
session:
jdbc:
table-name: "SESSIONS"
要设置会话超时,可以使用 spring.session.timeout 属性。如果该属性未在 Servlet Web 应用程序中设置,自动配置将回退到 server.servlet.session.timeout 的值。
您可以使用 @Enable*HttpSession (servlet) 或 @EnableRedisWebSession (reactive) 控制 Spring Session 的配置。这会导致自动配置退避。然后可以使用注解的属性而不是前面描述的配置属性来配置 Spring Session。