领先一步
VMware 提供培训和认证,助您加速进步。
了解更多本文作者为 Vedran Pavić
我很高兴代表社区宣布 Spring Session BOM Bean 正式发布。这是基于 Spring Session 2.1 的第一个版本,并且可以轻松地与新发布的 Spring Boot 2.1 一起使用。请继续阅读以了解此次发布的重要亮点。
HttpSession 集成的 Same-Site Cookie 支持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 的一个具体实现。
WebSession 集成的自定义序列化我们的 Redis WebSession 集成现在可以轻松配置以使用自定义序列化机制。与 Redis HttpSession 集成类似,可以通过提供一个名为 springSessionDefaultRedisSerializer 的 RedisSerializer<Object> 类型的 @Bean 来实现。
@EnableRedisWebSession
static class SessionConfig {
@Bean
public RedisSerializer<Object> springSessionDefaultRedisSerializer() {
// configure and return a serializer of your choice
}
}
HttpSession 集成的性能改进我们为 JDBC HttpSession 集成增加了一些性能改进。
延迟反序列化会话属性 - 会话属性现在将在首次访问时反序列化,而不是在从数据库检索 HttpSession 时反序列化,这可以避免许多 HTTP 请求的完全反序列化开销。
禁用事务的选项 - 对于希望避免事务开销的用户,JdbcOperationsSessionRepository 现在提供了一个只接受 JdbcOperations 的构造函数,并在内部使用无操作的 TransactionOperations 实现。
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