是否可以在没有 Redis 的情况下使用 Spring 引导会话?

Is it possible to use Spring Boot session without Redis?

查看 Spring 引导文档,我只找到了使用 Redis 会话的示例,是否可以在 没有 Redis 的情况下使用它?

您可以使用任何您想要存储会话的技术。 Spring 会话提供了接口 SessionRepository,您必须实现该接口才能存储和检索会话。因此,只需使用您的存储技术创建该接口的实现并将该实现配置为 Spring bean。

如另一个答案所述:是的,您可以通过更改 SessionRepository 实现来更改会话持久性后端。

并且,Spring-Session 提供了一个内置替代方案,即 MapSessionRepository,您可以将其保存在 Map.

在 Spring 会话的示例中,有一个 sample using Hazelcast 作为持久性后端。它利用上述 MapSessionRepository 和 Hazelcast 创建的 Map 实例。

我知道我问这个问题有点晚了,但只是发帖以防其他人偶然发现这个问题。

从 Spring 会话 1.2.0 开始,有一个内置的 JDBC 会话存储库,可以像这样使用:

@Configuration
@EnableJdbcHttpSession // default session length and DB table name can be included on the annotation
public class SessionConfiguration {
    // code goes here if needed
}

在 Spring 会话 JAR 中,org.springframework.session.jdbc 包有 SQL 脚本来为许多不同的 DBMS 创建 table 结构(MySQL,Postgre等)

我开始使用 Spring Session 1.2.0 里程碑版本中的 JDBC 功能,一路上我没有遇到任何问题。