现在可以从repo.spring.io/milestone获得第一个 Spring Framework 6.1 里程碑版本。
此版本引入了 6.1 代的主要主题,以及 6.1.0-M1 中所有主题的初始功能:
- 拥抱 JDK 21 LTS
- 虚拟线程(Project Loom)
- JVM 检查点恢复(项目 CRaC)
- 数据绑定和验证
请注意,Spring Framework 6.1 在运行时提供了 JDK 21 和 Jakarta EE 10 的一流体验,同时保留了 JDK 17 和 Jakarta EE 9 基线。我们还采用了最新版本的 GraalVM for JDK 17 及其即将推出的 JDK 21 版本,同时保持与 GraalVM 22.3 的兼容性。
请留意 7 月发布的第一个 Spring Boot 3.2 里程碑,它基于 Spring Framework 6.1。
核心新功能
- JDK 21上的虚拟线程配置选项:一个专门的VirtualThreadTaskExecutor和SimpleAsyncTaskExecutor上的一个flag。
- 与Project CRaC的生命周期集成,用于JVM检查点恢复。
- 支持在注入点解析JDK 21 SequencedCollection/Set/Map;
- 修改了即时和持续时间解析(与Spring Boot一致);
- 支持SpEL表达式中属性、字段和变量名称中A-Z以外的字母;
- 支持将MethodHandle注册为SpEL函数。
- 异步/反应式销毁方法(例如,在R2DBC ConnectionFactory上);
- 反应式@Scheduled方法(包括Kotlin coroutines);
- 用于程序化验证器实现的验证器工厂方法;
- MethodValidationInterceptor抛出的MethodValidationException是ConstraintViolationException的子类,其违规行为与MessageSource可解析代码相适应,并与@Valid参数的Errors实例相适应,具有级联违规。
数据访问和交易
- 失败的CompletableFuture将触发了异步事务方法的回滚;
- BeanPropertyRowMapper和DataClassRowMapper也可用于R2DBC;