领先一步
VMware 提供培训和认证,助您加速进步。
了解更多本文作者:Vedran Pavić
我很高兴代表社区宣布 Spring Session 2.0.0.RELEASE 的发布。此版本经历了 2.0.0.M1、2.0.0.M2、2.0.0.M3、2.0.0.M4、2.0.0.M5、2.0.0.RC1、2.0.0.RC2 和 2.0.0.RELEASE 等阶段,总共关闭了 130 多个 issue 和 pull request。
您可以在参考文档的2.0 新特性部分找到新特性的重点介绍。有关详细信息,请参阅上面的变更日志链接。
此版本将基础要求提高到 Java 8 和 Spring Framework 5.0。整个代码库现在都基于 Java 8 源代码级别。
Spring Framework 5.0 中引入的响应式编程模型是 2017 年最大的亮点之一,我们很高兴能够通过 Redis 的 ReactiveSessionRepository
为管理 Spring WebFlux 的 WebSession
提供支持。
按照熟悉的 Spring Session 方式,启用 Redis 支持的 WebSession
非常简单,只需以下代码片段即可:
@EnableRedisWebSession
public class WebSessionConfig {
@Bean
public LettuceConnectionFactory redisConnectionFactory() {
return new LettuceConnectionFactory();
}
}
Spring Boot 用户会很高兴得知,从 2.0.0.M6
里程碑版本开始,响应式 Spring Session 的自动配置支持已经可用。
新版本对项目模块带来了一些重大变化,因为我们根据仓库实现将 Spring Session 分成了不同的模块。您会发现:
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-core</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-hazelcast</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-jdbc</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
作为此更改的一部分,我们从主仓库中移除了一些 Spring Session 实现。现在我们有了针对 Spring Session Data Geode (GemFire) 和 Spring Session Data MongoDB 的子项目。您会发现:
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-gemfire</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-geode</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-mongodb</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
这样做的目标是让核心 Spring Session 团队能够专注于交付新功能,而不是需要了解每个数据存储的细节。这将使得其他模块的开发无需核心 Spring Session 团队的评审开销。
没有社区的支持,我们不可能成为今天这样成功的项目。我要感谢所有创建 issue 和提供反馈的人。
如果您对此版本有反馈,我鼓励您通过 StackOverflow、GitHub Issues 或评论区与我们联系。您也可以在 Twitter 上联系 Rob @rob_winch、Joe @joe_grandja 或我 @vedran_pavic。
当然,最好的反馈形式是贡献。