领先一步
VMware 提供培训和认证,助您加速进步。
了解更多本文作者:Vedran Pavić
我很高兴代表社区宣布 Spring Session BOM Bean 的正式可用性 (GA)。这是基于 Spring Session 2.1 的首个版本,可与最新发布的 Spring Boot 2.1 轻松集成使用。请继续阅读以了解此版本的重点内容。
HttpSession 集成的 Same-Site Cookie 支持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 的具体实现。
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
}
}
HttpSession 集成的性能改进我们为 JDBC HttpSession 集成添加了一些性能改进
会话属性的延迟反序列化 - 现在会话属性将在首次访问时进行反序列化,而不是在从数据库检索 HttpSession 时进行,这对于许多 HTTP 请求可以完全避免反序列化的开销
禁用事务的选项 - 对于希望避免事务开销的用户,JdbcOperationsSessionRepository 现在提供了一个只接受 JdbcOperations 并内部使用无操作 (no-op) 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