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。