Spring Session Bean GA 发布

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

这篇文章的作者是 Vedran Pavić

我代表社区,很高兴地宣布 Spring Session BOM Bean 正式发布。这是基于 Spring Session 2.1 的第一个版本,可以轻松地与最新发布的 Spring Boot 2.1 一起使用。请继续阅读以了解此版本的亮点。

Same-Site Cookie 是另一种有助于 开发人员防止跨站点请求伪造 的机制。我们的 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 集成类似,这可以通过提供一个名为 springSessionDefaultRedisSerializerRedisSerializer<Object> 类型 @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 的构造函数,并在内部使用一个无操作的 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 社区中所有即将举行的活动。

查看全部