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存储的表名,如下例所示:
-
Properties
-
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(响应式)来控制 Spring Session 的配置。
这将使自动配置退避。
随后,Spring Session 可通过注解的属性进行配置,而无需使用前面所述的配置属性。