领先一步
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