【问题标题】:Is it possible to use Spring Boot session without Redis?是否可以在没有 Redis 的情况下使用 Spring Boot 会话?
【发布时间】:2015-10-27 23:48:19
【问题描述】:

查看 Spring Boot 文档,我只找到了将会话与 Redis 一起使用的示例,是否可以在没有 Redis 的情况下使用它

【问题讨论】:

  • 我不明白这个问题,你是说spring-boot默认会话管理使用redis吗?
  • 不,他说的是 Spring Session,一个单独的会话集群框架等。
  • 如何在 spring-boot 中使用默认会话管理?我在文档中找不到任何内容。
  • 或者您在寻找“如何使用 whatever 容器提供的 HTTP 会话?”。除了 HTTP 会话,我想不出其他“默认”会话管理。

标签: spring spring-boot spring-session


【解决方案1】:

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

而且,Spring-Session 提供了一个内置的替代方案,即MapSessionRepository,您可以将会话保存在Map 中。

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

【讨论】:

    【解决方案2】:

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

    从 Spring Session 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 Session JAR 中,org.springframework.session.jdbc 包具有 SQL 脚本,用于为许多不同的 DBMS(MySQL、Postgre 等)创建表结构

    我在 Spring Session 1.2.0 里程碑版本中开始使用 JDBC 功能,在此过程中我没有遇到任何问题。

    【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-09
      • 2013-02-02
      • 1970-01-01
      • 1970-01-01
      • 2019-03-23
      • 2020-04-24
      • 2011-01-31
      • 2014-05-08
      相关资源
      最近更新 更多