|
如需获取最新稳定版本,请使用 Spring Boot 4.0.4! |
Spring Session
Spring Boot 为多种数据存储提供了 Spring Session 自动配置功能。 在构建基于 Servlet 的 Web 应用程序时,以下存储可被自动配置:
-
Redis
-
JDBC
-
Hazelcast
-
MongoDB
Servlet 自动配置取代了使用 @Enable*HttpSession 的需要。
如果类路径中仅存在一个 Spring Session 模块,Spring Boot 会自动使用该存储实现。 如果您有多个实现,Spring Boot 将按以下顺序选择特定的实现:
-
Redis
-
JDBC
-
Hazelcast
-
MongoDB
-
如果 Redis、JDBC、Hazelcast 和 MongoDB 均不可用,则不会配置
SessionRepository。
构建响应式 Web 应用程序时,可自动配置以下存储:
-
Redis
-
MongoDB
响应式自动配置取代了使用 @Enable*WebSession 的需要。
与 Servlet 配置类似,如果您有多个实现,Spring Boot 将按以下顺序选择特定的实现:
-
Redis
-
MongoDB
-
如果既没有 Redis 也没有 MongoDB 可用,我们将不会配置
ReactiveSessionRepository。
每个存储库都有特定的附加设置。 例如,可以自定义 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)或 @Enable*WebSession(响应式)来控制 Spring Session 的配置。
这将使自动配置退出。
之后,Spring Session 可通过该注解的属性进行配置,而无需使用前述的配置属性。