# 升级到 2.x 有了新的主要版本, Spring 会话团队利用这个机会进行了一些非被动的更改。这些更改的重点是改进和协调 Spring Session 的 API,以及删除不受欢迎的组件。 ## [](#_baseline_update)基线更新 Spring 会话 2.0 需要 Java8 和 Spring Framework5.0 作为基线,因为其整个代码库现在基于 Java8 源代码。有关升级 Spring 框架的更多信息,请参见[Upgrading to Spring Framework 5.x](https://github.com/spring-projects/spring-framework/wiki/Upgrading-to-Spring-Framework-5.x)。 ## [](#_replaced_and_removed_modules)替换和移除模块 作为项目拆分模块的一部分,现有的`spring-session`已被`spring-session-core`模块所取代。`spring-session-core`模块只保存公共的一组 API 和组件,而其他模块则包含适当的`SessionRepository`的实现以及与该数据存储相关的功能。这适用于几个现有的模块,这些模块以前是一个简单的依赖聚合器助手模块。通过新的模块设置,以下模块实际进行了实现: * Spring MongoDB 的会话 * Spring Redis 会议 * Spring 会话 JDBC * Spring 会议 Hazelcast 此外,从主项目存储库中删除了以下内容: * Spring 会话数据 Gemfire * [`spring-session-data-geode`](https://github.com/ Spring-projects/ Spring-session-data-geode) ## [](#_replaced_and_removed_packages_classes_and_methods)替换和删除包、类和方法 对包、类和方法进行了以下更改: * `ExpiringSession`API 已合并到`Session`API 中。 * 已经对`Session`API 进行了增强,以充分利用 Java8。 * `Session`API 已通过`changeSessionId`支持进行了扩展。 * 已经更新了`SessionRepository`API,以更好地与 Spring 数据方法命名约定保持一致。 * 如果没有底层`Session`对象,`AbstractSessionEvent`及其子类将不再可构造。 * `RedisOperationsSessionRepository`使用的 Redis 命名空间现在是完全可配置的,而不是部分可配置的。 * 已更新了 Redis 配置支持,以避免注册 Spring 会话特定的`RedisTemplate` Bean。 * 已更新了 JDBC 配置支持,以避免注册 Spring 会话特定的`JdbcTemplate` Bean。 * 以前不推荐的类和方法已在整个代码库中被删除。 ## [](#_dropped_support)支持度下降 作为对`HttpSessionStrategy`的更改及其与来自反应性世界的对应物的对齐的一部分,对在单个浏览器实例中管理多个用户会话的支持已被删除。正在考虑在未来的版本中引入一个新的 API 来取代此功能。