【问题标题】:What is the default Session Storage for Spring Boot?Spring Boot 的默认会话存储是什么?
【发布时间】:2019-08-31 14:02:59
【问题描述】:

我已阅读 Spring Boot 文档,并从 this 文档中了解了有关 Spring Session 的知识。

但我看到 HttpSession 类在我的代码中没有添加任何依赖项就可以工作。

  • JDBC
  • Redis
  • 榛树
  • MongoDB

所以……

我猜 Spring Boot 默认提供 Session Storage。有人知道吗?我查看了 spring 文档,但找不到。

【问题讨论】:

    标签: java spring spring-boot


    【解决方案1】:

    如何运行您的应用程序?您使用 Tomcat 或 Jetty 嵌入式服务器还是将其部署在这些服务器中?它们都有自己的会话存储实现。 Tomcat uses 默认基于文件的会话存储。

    【讨论】:

    • 该死的,我想知道,这怎么可能,即使我重新启动应用程序,会话仍然存在。现在很清楚了。顺便说一句,属性 server.servlet.session.persistent=false 可以防止这种情况发生
    【解决方案2】:

    你提到的会话存储默认是由Servlet容器提供的。它只是一个内部的java.util.Map

    Spring Session 是一个 Spring 子项目。它是可选的,其目的是允许您将容器提供的会话存储机制与 Spring Session 提供的机制交换,后者可以是 RDBMS、Redis、Hazelcast Cluster 或 MongoDB。HttpSession 然后以与容器无关的方式存储,例如您可以更轻松地进行会话持久性/会话集群。您不再需要查阅 Servlet 容器文档来了解如何配置集群等。

    如果你想使用 Spring session,你仍然需要包含 spring session 项目的依赖。

    【讨论】:

      猜你喜欢
      • 2020-02-01
      • 2011-04-24
      • 1970-01-01
      • 1970-01-01
      • 2020-08-24
      • 2012-05-15
      • 2020-10-16
      • 1970-01-01
      • 2010-10-26
      相关资源
      最近更新 更多