领先一步
VMware 提供培训和认证,以加速您的进步。
了解更多这篇文章的作者是 Vedran Pavić
我代表社区,很高兴地宣布 Spring Session BOM Bean 正式发布。这是基于 Spring Session 2.1 的第一个版本,可以轻松地与最新发布的 Spring Boot 2.1 一起使用。请继续阅读以了解此版本的亮点。
HttpSession
集成的 Same-Site Cookie 支持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
的具体实现。
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