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 是另一个 帮助开发者防范跨站请求伪造 (CSRF) 的机制。我们的 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 社区所有即将举行的活动。

查看所有