JDK 20 的早期访问构建版Build 25已在上周发布,主要针对 Build 24 的更新,以及多个问题修复。关于该版本更多内容请参见更新说明。
针对JDK 20,欢迎开发者通过Java Bug数据库提交问题。
继上周Spring框架的主要版本的发布后,VMware 跟进了更多项目的主要版本发布。这些主要版本中值得关注的有:Spring Boot 3.0、Spring Web服务 4.0、Spring安全 6.0、Spring批处理 5.0、Spring授权服务器 1.0、Spring REST文档 3.0、Spring for GraphQL 1.1.0、Spring for Apache Kafka 3.0,以及Spring for RabbitMQ 3.0(Spring AMPQ),均以 JDK 17 及 Jakarta EE 9 为基线。
在 Spring Boot 2.0发布后的四年半里,经过一年多中超过5800个提交的酝酿,Spring Boot 3.0 已经可供Java社区使用。与 Spring 框架 6.0 类似,主要更新亮点包括:支持用 GraalVM生成原生镜像,取代实验性质的 Spring Native 项目;优化 Micrometer 及 Micrometer Tracing 的可观察性。关于该版本更多内容请参见更新说明。
Java Champion 及首位 Spring 开发者倡导Josh Long最近接受了 InfoQ 的采访,讲述了他对 Spring 框架 6.0 及 Spring Boot 3.0 这两个主要版本的看法。
Spring Boot 的2.7.6版本及2.6.14版本均带来了问题修复、文档改善以及依赖升级,如 Spring 框架 5.3.24、Spring Web 服务 3.1.4、Hibernate 5.6.14.Final、PostgreSQL 42.3.8、Reactor 2020.0.25,以及 Spring REST 文档 2.0.7。关于该版本的更多内容请参见版本2.7.6以及版本2.6.14的更新说明。根据 VMware 的开源政策,版本 2.6.14 是 2.6 发布的最后一个版本。
Spring Web 服务的 4.0发布重点如下:通过 GitHub 版本中变更日志的使用,追踪每次里程碑版本基础上的问题条目;折叠相同 catch 代码块或分支;更新文档中语法及拼写;依赖更新至 Spring 框架 6.0、Spring 安全 6.0.0、nexus-staging-maven-plugin
1.6.13。关于该版本的更多内容请参见更新说明。
Spring 安全 6.0 版本及 5.8 版本均已发布:
AuthorizationManager
接口的扩展支持;对跨站请求伪造(CSRF)漏洞的额外深层防御。关于该版本的更多细节可参见新内容页面。Spring 批处理 5.0 已经发布,其特点包括:为DefaultBatchConfiguration
类提供了新的getDataSource()
方法;支持 Micrometer 及 Micrometer Tracing 的可观察性;优化SystemCommandTasklet
类的测试;在FieldExtractor
接口中实现了 Java Records;支持在SimpleJobOperator
及SimpleJobExplorer
类中配置事务管理器。关于该版本的更多细节请参见更新说明。
如今距离 Spring 授权服务器首次亮相Java 社区以来已经两年半了,这次的 1.0 版本发布带来了针对 Spring 框架 6.0、Spring 安全 6.0 及 6.0-RC2、Spring Boot 3.0-RC2、Jakarta Servlet 6.0、HyperSQLDB 2.7.1,以及Jackson 2.14 的新功能和依赖升级。关于该版本的更多细节请参见更新说明。
Spring Authorization Server 0.4 也已发布,其特点包括:到 JUnit 5 的升级;更新链接到当前版本的 OAuth 2.1;断言(assert) JdbcRegisteredClientRepository
类中标识符的唯一性;新增日志以保持与 Spring 安全的统一性;依赖升级至 Spring 框架 5.3.24、Spring 安全 5.8,以及 Jackson 2.14。关于该版本的更多细节请参见更新说明。
Spring REST 文档 3.0 的发布内容包括:单独文档记录先前与请求参数混在一起的表单及查询参数;文档记录请求与响应 cookie;发布材料清单(BOM)坐标为org.springframework.restdocs:spring-restdocs-bom
;目前与 REST Assured 整合需要 5.2 版本。Spring REST 文档 2.0 中标记为废弃的类和方法已被删除。关于该版本的更多细节请参见更新说明。
Spring REST 文档 2.0.7 已经发布,其特点在于修复了以下问题:在webtestclient
包中定义的类里使用自定义状态码时,记录响应的问题;通过modifyUris()
方法在请求体中不恰当地转换 URL 数据时,抛出PayloadHandlingException
异常。关于该版本更多细节请参见更新说明。
Spring 框架发布补丁版本6.0.2及版本6.0.1,提供问题修复、文档优化及新功能,如:依赖Jakarta Bean Validation 3.0中标准参数名称解析;SourceHttpMessageConverter
类变更为可选;完全废弃LocalVariableTableParameterNameDiscoverer
类,以避免其暴露在原生镜像中;在GeneratorStrategy
接口中定义的generate()
方法变更为无法访问,以节约在转换为原生镜像时内存需求。关于这些版本的更多细节请参见版本6.0.2及版本6.0.1的更新说明。
Spring Modulith版本 0.1 的发布完成了对现已停用的前代Moduliths项目的整合。该版本提供了问题修复及对 Spring 3.0 的依赖升级。Spring Modulith 项目负责人及 VMware 的 Spring 的员工兼工程师Oliver Drotbohm最近接受了 InfoQ 关于 Spring Modulith 项目的采访。
Spring for GraphQL 1.1 版本已经发布,提供对以 GraphQL Java 19(及 JDK 17 和 Jakarta EE 9)为基线的支持,并与 Spring Boot 3.0 保持一致。其他新功能包括支持:Micrometer可观察性,通过 Micrometer 上下文传播库(Micrometer Context Propagation Library)进行上下文传播;AOT 及 GraalVM 原生镜像;对GraphQlArgumentBinder
类更新以捆绑 Java Collections;新增ArgumentValue
类用于暴露参数是否完全被忽略的信息。关于该版本的更多细节请参见发布说明。
Spring for GraphQL 1.0.3 的版本发布也提供了问题修复、功能增强及文档优化等特点。关于该版本的更多细节请参见发布说明。
Spring for Apache Kafka 3.0 及 Spring for RabbitMQ 3.0 均已可在 Java 社区使用:
EmbeddedKafkaBroker
类的全局单一实例;对@RetryableTopic
注解带来了若干增强,并采取了非阻塞式重试;在KafkaTemplate
类中定义的方法会返回CompletableFuture
,而不是已废弃的ListenableFuture
。关于该版本的更多细节请参见新内容页面。AsyncRabbitTemplate
和RabbitStreamTemplate
中的方法会返回CompletableFuture
而不是类似 Spring for Apache Kafka 的ListenableFuture
;删除了先前已废弃的远程支持。关于该版本的更多细节可参见新内容页面。IBM 已发布Open Liberty 22.0.0.12 版本,提供针对漏洞CVE-2022-37734的问题修复,该漏洞存在于GraphQL Java,攻击者可通过发送消耗 CPU 资源的 GraphQL 查询发起拒绝服务攻击。鼓励开发者升级至 GraghQL Java 19.0 及以上、18.3,以及 17.4 版本。
Eclipse 基金会提供了 GlassFish第十个里程碑版本,7.0.0。该版本特点包括:集成了 Helidon Config 3.0.2、Eclipse Jersey 3.1.0 和 Shoal 3.0.1;增加了 REST JDBC 管理测试;支持 MicroProfile JWT;为GlassFish 7.0.0-M9增加了 Jakarta MVC 2.1 TCK 结果。GlassFish 7.0.0-M10 可在 JDK 11 至 JDK 19 的版本上编译并运行,该版本被认为是包含了 Jakarta EE 10 APIs 最终版及 Jakarta EE 10 最终实现组件的候选版本。
在前往 1.0 版本的大路上,Oracle创新实验室已发布原生构建工具的0.9.18版本,该工具是由与 GraalVM 原生镜像互操作插件组成的 GraalVM 项目。这一最新版本提供了:对 GraalVM 版本的修整,修复 Windows 支持的问题;对 GraalVM 元数据存储库 0.2.5 的升级;通过增加了对escapeArg()
方法的测试及取消用args
参数转义的正则参数,增强NativeImageUtils
类。关于该版本的更多细节请参见更新日志。
Java 的容错库Resilience4j的 2.0.0 版本已经发布,更新包括对 JDK 17、Kotlin 1.7.20、Spring Boot 2.7 以及 Micronaut 3.7.3 的依赖升级。Java 功能库Vavr的依赖项被移除。InfoQ 后续将跟进更为详尽的报道。
Apache Tomcat 8.5.84 已被发布,其问题修复主要包括:评估包含 lambda 表达式的表达式语言时的并发问题;修正了 HTTP cookies 中expires
属性的时间格式问题,从破折号分割日、月、年改为由空格分割,以与RFC 6265保持一致。同时也包括对Apache Commons Daemon 1.3.2 的依赖升级。关于该版本的更多详情可参见更新日志。
JetBrains发布了 Kotlin 1.8.0-Beta 版本,其特点包括:兼容 Gradle 7.3;在标准库中递归 Path 效用函数;在 Kotlin/Native 中支持 Xcode 14;停止对旧版 JVM 后端的支持。关于该版本的更多细节可参见新内容界面。
原文链接:
Java News Roundup: Major Spring Releases, Resilience4j, Open Liberty, GlassFish, Kotlin 1.8-Beta
领取专属 10元无门槛券
私享最新 技术干货