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 来代替此功能。