11. 升级到 2.x

使用新的主要发行版,Spring Session 团队借此机会进行了一些非被动的更改。这些更改的重点是改善和协调 Spring Session 的 API,以及删除不推荐使用的组件。

11.1 基准更新

Spring Session 2.0 需要 Java 8 和 Spring Framework 5.0 作为基线,因为它的整个代码库现在都基于 Java 8 源代码。请参阅升级到 Spring Framework 5.x指南以获取有关升级 Spring Framework 的参考。

11.2 更换和卸下的模块

作为项目拆分模块的一部分,现有的spring-session已替换为spring-session-core模块。 spring-session-core模块仅包含一组通用的 API 和组件,而其他模块则包含相应SessionRepository的实现以及与该数据存储相关的功能。这适用于以前是简单的依赖项聚合器帮助程序模块的几个现有模块,但实际上采用新的模块安排来实现该实现:

  • Spring Session 数据 Redis

  • Spring Session JDBC

  • Spring Session Hazelcast

同样,以下模块已从主项目存储库中删除:

  • Spring Session 数据 MongoDB

  • Spring Session 数据 GemFire

请注意,这两个已移至单独的存储库,并且即使在已更改的工件名称下也将 continue 可用:

11.3 替换和删除的软件包,类和方法

  • ExpiringSession API 已合并到Session API

  • Session API 已得到增强,可以充分利用 Java 8

  • Session API 已得到changeSessionId支持的扩展

  • SessionRepository API 已更新,可以更好地与 Spring Data 方法命名约定保持一致

  • 如果没有基础Session对象,则无法再构建AbstractSessionEvent及其子类

  • RedisOperationsSessionRepository使用的 Redis 名称空间现在是完全可配置的,而不是部分可配置的

  • Redis 配置支持已更新,以避免注册特定于 Spring 会话的RedisTemplate bean

  • JDBC 配置支持已更新,以避免注册特定于 Spring 会话的JdbcTemplate bean

  • 先前不推荐使用的类和方法已在整个代码库中删除

11.4 放弃支持

作为对HttpSessionStrategy所做的更改的一部分,它与响应世界中的对应对象保持一致,已删除了在单个浏览器实例中 Management 多个用户会话的支持。将来的发行版中正在考虑引入新的 API 来代替此功能。