Spring Session BOM Bean GA 版本发布

版本发布 | Rob Winch | 2018 年 10 月 31 日 | ...

本文作者:Vedran Pavić

我很高兴代表社区宣布 Spring Session BOM Bean 的正式可用性 (GA)。这是基于 Spring Session 2.1 的首个版本,可与最新发布的 Spring Boot 2.1 轻松集成使用。请继续阅读以了解此版本的重点内容。

Same-Site Cookie 是另一种有助于帮助开发者防范跨站请求伪造 (Cross-Site Request Forgery) 的机制。我们的 DefaultCookieSerializer 已得到增强,支持向 Spring Session 生成的会话 Cookie 添加 SameSite 属性。SameSite 属性默认启用,值为 Lax,可通过 DefaultCookieSerializer#setSameSite 进行自定义。

请注意,自 Spring Framework 5.1 起,Spring WebFlux 本身已包含对 WebSession 的等效支持。

HttpSessionBindingListener 支持

Spring Session 现在支持 HttpSessionBindingListener,并将正确调用此 API 实现上的回调。这也意味着现在可以在会话范围的 bean 上使用 @PreDestroy,因为此功能是通过 Spring Framework 的 DestructionCallbackBindingListener 实现的,后者是 HttpSessionBindingListener 的具体实现。

对 Redis WebSession 集成的自定义序列化支持

我们的 Redis WebSession 集成现在可以轻松配置为使用自定义序列化机制。与 Redis HttpSession 集成类似,这可以通过提供一个类型为 RedisSerializer<Object> 且名为 springSessionDefaultRedisSerializer@Bean 来实现。

@EnableRedisWebSession
static class SessionConfig {

    @Bean
    public RedisSerializer<Object> springSessionDefaultRedisSerializer() {
        // configure and return a serializer of your choice
    }

}

JDBC HttpSession 集成的性能改进

我们为 JDBC HttpSession 集成添加了一些性能改进

  • 会话属性的延迟反序列化 - 现在会话属性将在首次访问时进行反序列化,而不是在从数据库检索 HttpSession 时进行,这对于许多 HTTP 请求可以完全避免反序列化的开销

  • 禁用事务的选项 - 对于希望避免事务开销的用户,JdbcOperationsSessionRepository 现在提供了一个只接受 JdbcOperations 并内部使用无操作 (no-op) TransactionOperations 实现的构造函数

支持 Java 11

Spring Session 现在支持最近发布的 Java 11,而所需的最低版本仍然是 Java 8。我们的 CI 流水线已经得到增强,以便项目能够持续在 Java 11 环境下进行验证。

依赖项升级

Spring Session 2.1 基于以下主要依赖项的最新版本

  • Spring Framework 5.1

  • Spring Data Lovelace

  • Spring Security 5.1

  • Project Reactor Californium

其他

Spring Session 2.1 版本的完整详情可在以下更新日志中找到

项目页面 | 文档 | 问题 | Gitter | Stack Overflow

订阅 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获取支持

Tanzu Spring 通过一个简单的订阅提供对 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将到来的活动

查看 Spring 社区的所有即将到来的活动。

查看全部