# 升级到 2.x

有了新的主要版本, Spring Session 团队利用这个机会进行了一些非被动的更改。这些更改的重点是改进和协调 Spring Session 的 API,以及删除不受欢迎的组件。

# 基线更新

Spring Session 2.0 需要 Java8 和 Spring Framework5.0 作为基线,因为其整个代码库现在基于 Java8 源代码。有关升级 Spring 框架的更多信息,请参见Upgrading to Spring Framework 5.x (opens new window)

# 替换和移除模块

作为项目拆分模块的一部分,现有的spring-session已被spring-session-core模块所取代。spring-session-core模块只保存公共的一组 API 和组件,而其他模块则包含适当的SessionRepository的实现以及与该数据存储相关的功能。这适用于几个现有的模块,这些模块以前是一个简单的依赖聚合器助手模块。通过新的模块设置,以下模块实际进行了实现:

  • Spring MongoDB 的会话

  • Spring Redis 会议

  • Spring Session JDBC

  • Spring 会议 Hazelcast

此外,从主项目存储库中删除了以下内容:

  • Spring Session 数据 Gemfire

    • [spring-session-data-geode](https://github.com/ Spring-projects/ Spring-session-data-geode)

# 替换和删除包、类和方法

对包、类和方法进行了以下更改:

  • ExpiringSessionAPI 已合并到SessionAPI 中。

  • 已经对SessionAPI 进行了增强,以充分利用 Java8。

  • SessionAPI 已通过changeSessionId支持进行了扩展。

  • 已经更新了SessionRepositoryAPI,以更好地与 Spring 数据方法命名约定保持一致。

  • 如果没有底层Session对象,AbstractSessionEvent及其子类将不再可构造。

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

  • 已更新了 Redis 配置支持,以避免注册 Spring Session 特定的RedisTemplate Bean。

  • 已更新了 JDBC 配置支持,以避免注册 Spring Session 特定的JdbcTemplate Bean。

  • 以前不推荐的类和方法已在整个代码库中被删除。

# 支持度下降

作为对HttpSessionStrategy的更改及其与来自反应性世界的对应物的对齐的一部分,对在单个浏览器实例中管理多个用户会话的支持已被删除。正在考虑在未来的版本中引入一个新的 API 来取代此功能。