阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

Java 近期新闻:JDK 20 发布、Spring 多个版本发布、Quarkus、Helidon、Micronaut 和 Open Liberty

  • 2023-04-04
    北京
  • 本文字数:4735 字

    阅读完需:约 16 分钟

Java近期新闻:JDK 20发布、Spring多个版本发布、Quarkus、Helidon、Micronaut和Open Liberty

OpenJDK


JEP 431,序列集合(Sequenced Collections),在 JDK 21 中已经从 Proposed to Target 状态提升到了 Targeted 状态。该 JEP 提议引入“一个新的接口系列,代表了元素能够以明确的序列或顺序排列在集合中的概念,使其作为集合的结构化属性”。该 JEP 的动机在于集合框架(Collections Framework)中缺乏定义良好的排序和统一操作集。关于 JEP 431 的更多信息,请参阅 InfoQ 的新闻报道


JEP 443,未命名的模式和变量(Unnamed Patterns and Variables,预览)已经从 JEP Draft 8294349 状态提升到了 Candidate 状态。该预览 JEP 提议“使用未命名模式未命名参数对语言进行增强,未命名模式与 record 组件匹配,但不用说明组件的名称或类型,未命名参数可以被初始化但不使用”。这两种模式都是由下划线来进行表示的,如r instanceof _(int x, int y)r instanceof_

JDK 20


甲骨文发布了Java 编程语言和虚拟机的20版本。更多细节请参阅 InfoQ 的新闻报道

JDK 21


JDK 21 的早期访问构建版本Build 15发布,它是对 Build 14 的更新,包含对各种问题的修复。关于该版本的更多细节,可以参见发布说明


对于JDK 20JDK 21,鼓励开发人员通过Java Bug数据库报告缺陷。

Amazon Corretto


亚马逊云科技发布了Amazon Corretto 20,这是他们的 OpenJDK 20 的下游发行版,可用于 Linux、Windows 和 macOS。开发人员可以从该网站下载这个最新版本。

Liberica JDK


与之类似,BellSoft 也发布了 Liberica JDK 20,这是他们的 OpenJDK 20 的下游发行版。开发者可以从该网站下载这个最新版本。

Spring Framework


对于 Spring 项目团队来说,最近是非常忙碌的,他们发布了Spring BootSpring FrameworkSpring DataSpring IntegrationSpring VaultSpring for GraphQLSpring Authorization ServerSpring HATEOASSpring Modulith的里程碑版本以及小版本。其中一些版本解决了公共漏洞和暴露(Common Vulnerabilities and Exposure,CVE):


Spring Boot 3.0.5发布,该版本带来了文档改进、依赖性升级和重要的缺陷修复,比如,当嵌入式服务器未配置时,EmbeddedWebServerFactoryCustomizerAutoConfiguration类不应该被调用;@ConfigurationProperties注解不再用于可变的 Kotlin 数据类;使用@EntityScan注解导致 AOT 实例供应者出现代码生成错误。关于该版本的更多细节,请参阅发布说明


与之类似,Spring Boot 2.7.10发布,该版本带来了文档改进、依赖性升级和重要的缺陷修复,比如,在使用 SnakeYAML 2.0 时,加载application.yml文件会出现NoSuchMethodError异常;如果 classpath 包含“.”字符,StandardConfigDataResource类的实例可能会导入同一个文件两次;在使用project.build.outputTimestamp属性时,一个 Maven 插件使用了本地时区的时间戳。关于该版本的更多细节,请参阅发布说明


Spring Boot 3.1.0 的第二个发布候选版本提供了一些新的特性,比如,SanitizableData类的新方法withSanitizedValue(),它会返回一个脱敏(sanitized)值的新实例;支持 GraphQL 分页和排序的默认配置;支持 Spring Authorization Server。关于该版本的更多细节,请参阅发布说明


Spring Framework 的 6.0.7 和 5.3.26 版本发布,主要解决上述的 CVE-2023-20860 和 CVE-2023-20861 漏洞。这两个版本还提供了新的特性,比如,在 SpEL 中改进了对matches运算符和重复文本的诊断;更新了HandlerMappingIntrospector类;允许兼容 SnakeYaml 2.0 运行时。关于这两个版本的更多细节,请分别参阅6.0.7版本5.3.26版本的发布说明。


Spring Framework 5.2.23 的发布也解决了 CVE-2023-20861 漏洞,并提供了与 Spring Framework 5.3.26 相同的新 SpEL 特性。关于这个版本的更多细节,请参阅发布说明


Spring Data 的 2023.0-M1(代号为 Ullman)、2022.0.4 和 2021.2.10发布。这些服务版本包含了缺陷修复和文档改进,分别可用于 Spring Boot 3.0.5 和 2.7.10。里程碑版本中的新特性包括,新的滚动 API,支持偏移和基于 key 的分页;改进对 HQL 和 JPQL 的 JPA 查询解析;支持 MongoDB 的显式字段级加密;Spring Data REST中的聚合引用请求参数。关于该里程碑版本的更多细节,请参阅发布说明


Spring Integration 的 6.1.0-M2、6.0.4 和 5.5.17 版本发布,带来了重要的变更,包括,LockRegistryLeaderInitiator类的改进,如在当前线程被中断的情况下,调用目标锁提供者将会被延迟;AbstractRemoteFileStreamingMessageSource类在远程调用方面的改进;修复与代码覆盖工具 Sonar 和 JaCoCo 的关系。关于这些版本的更多细节,请参阅6.1.0-M26.0.45.5.17的发布说明。


Spring Vault 的 3.0.2 和 2.3.3 版本发布,以解决上述的 CVE-2023-20859 漏洞,并带来了新的特性,如完善令牌撤销失败后的日志记录;在ClientHttpRequestFactoryFactoryClientHttpConnectorFactory类中重用来自库的特定配置代码;在EnvironmentVaultConfiguration类中添加 AWS IAM Authentication 功能。关于这两个版本的更多细节,请参阅3.0.2 and 2.3.3的发布说明。


Spring for GraphQL 1.2.0 的第一个里程碑版本发布,提供了新的特性,包括,在@SchemaMapping注解标注的方法中支持分页返回值和分页请求;支持HandlerMethodArgumentResolver接口的自定义实例;依赖升级到GraphQL Java 20.0。关于该版本的更多细节,请参阅发布说明


Spring for GraphQL 的 1.1.3 和 1.0.4 版本发布,其中包含了新的特性,WebGraphQlInterceptor接口中的访问请求属性和 cookie;ContextDataFetcherDecorator类的实例在名称变更时忽略订阅的修复。这些版本分别可用于 Spring Boot 3.0.5 和 2.7.10。关于这两个版本的更多细节,请参阅1.1.31.0.4的发布说明。


Spring Authorization Server 1.1.0 的第二个里程碑版本包含了缺陷修正、依赖性升级和新特性,如 RFC 8628,OAuth 2.0设备授权(Device Authorization Grant)的实现;为 OAuth2 客户端 secret 启用PasswordEncoder接口中定义的upgradeEncoding()方法。关于该版本的更多细节,请参阅发布说明


Spring HATEOAS 的 2.1-M1、2.0.3 和 1.5.4 版本发布。这些服务版本包括了文档改进和依赖性升级。里程碑版本包含如下特性,支持在表单上使用 JSR-303 定义的@Size注解的属性元数据;添加新的SlicedModel类,这是PagedModel类的简化版本,可以浏览切片,但不计算总数。关于这些版本的更多细节,请参阅2.1-M1version 2.0.3version 1.5.4的发布说明。


Spring Modulith 0.5.1 的发布提供了一个重要的缺陷修正,即spring-modulith-runtime模块意外地包含了一个只用于测试的Logback配置文件。此外,还有一个依赖性升级到 Spring Boot 3.0.5。关于这个版本的更多细节,请参阅发布说明


Spring Data JPA团队为开发者引入了HQL 和 JPQL 查询解析器,以便在 Spring Data JPA 应用程序中结合@Query注解更容易地定制查询。

Quarkus


Quarkus 3.0.0 的第一个beta版本包含对管理接口的支持,该接口能够将选定的路由(即管理路由)暴露到不同的 HTTP 服务器上,避免在主 HTTP 服务器上暴露这些路由,之前的方式可能会导致对这些端点的泄漏和预料之外的访问。关于这个版本的更多细节,请参阅更新日志


Quarkus 2.16.5.Final 是第五个维护版本,重要的变更包括,过滤掉执行测试类ProviderConfigInjectionWarningsTest时与 RESTEasy 相关的警告;修复加载工作区模块时的NullPointerException;防止来自MessageBodyWriter的服务器端事件可能会写入一个不断累积的头信息中。关于这个版本的更多细节,请参阅更新日志

Helidon


甲骨文发布了Helidon 3.2.0,其中的变更包括,对WriteableMultiPart类中定义的重载create()方法的修复;对JtaConnection类中关闭数据库连接的错误行为的修复;对 SnakeYAML 2.0 的依赖升级。值得注意的是,在 SnakeYAML 2.0 中存在着破坏性的变更。如果直接使用 SnakeYAML,Helidon 应用程序可能会受到影响。然而,依然可以使用降级的 SnakeYAML 1.3.2 将应用程序升级到 Helidon 3.2.0。关于这个版本的更多细节,请参阅发布说明

Open Liberty


IBM发布了Open Liberty 23.0.0.3-beta,支持 JDK 20、Jakarta EE 10 Platform 和 MicroProfile 6.0。

Micronaut


Micronaut 基金会提供了第一个里程碑版本的 Micronaut Framework 4.0.0,其特性包括,对Kotlin符号处理(Kotlin Symbol Processing)的实验性支持;对虚拟线程的支持;改进了缺失 Bean 的错误信息;对过滤器方法的支持。

Apache 软件基金会


正如 Apache Tomcat 团队所披露的,CVE-2023-28708,这是使用RemoteIpFilter类的一个安全漏洞,在通过 HTTP 接收到的、X-Forwarded-Proto 头信息设置为 HTTPS 的反向代理请求时,Tomcat 创建的会话 cookie 不包括secure属性。这一漏洞可能导致攻击者通过不安全的通道传输会话 cookie。受此漏洞影响的 Tomcat 版本包括: 11.0.0-M1 至 11.0.0-M2、10.1.0-M1 至 10.1.5、9.0.0-M1 至 9.0.71 以及 8.5.0 至 8.5.85。


Camel Quarkus 3.0.0 的第一个里程碑版本,包含 Quarkus 3.0.0.Alpha5 和 Camel 4.0.0-M2,它是以 JDK 17 和 Jakarta EE 10 为基线的第一个 Camel Quarkus 版本。其他值得注意的变化包括,废弃了ReflectiveClassBuildItem类;修复了在用 Camel 4 和 Quarkus 3 测试时使用PerfRegressionIT类抛出的异常;将 Infinispan 测试拆分成分别由 Quarkus 和 Camel 管理的客户端独立模块。关于这个版本的更多细节,请参阅发布说明

JBang


0.105.10.105.2版本的 JBang 带来了重要的变更,包括,改进的jbang edit编辑命令,它假定支持的 JBang IDE插件之一已被安装;基于 modulepath 进行持续改进,以替换 classpath;jbang export jlink命令现在是一个选项,允许开发人员导出一个嵌入 Java 运行时的 JBang 应用程序或脚本;对 Apple Silicon VSCodium下载的修正。

Failsafe


Failsafe是一个在 Java 8+环境中处理故障的轻量级、零依赖性的库,它发布了3.3.1版本,其特性是 API 的变更,比如,在 Failsafe JAR 中增加了完整的 Java 模块描述符;发布了 Failsafe 提供的CompletableFuture类实例内部的执行引用。有关该版本的更多细节,请参阅更新日志

Maven


Maven 3.9.1发布,改善之处包括,改进了“missing dependency”的错误信息;使用 replace()方法替换 replaceAll()方法中的所有非正则表达式模式,或使用预编译模式来提高性能;废弃 Mojo 插件的参数表达式${localRepository},因为${localRepository}注入的ArtifactFactory接口实例由于缺乏上下文,与 Maven 解析器接口LocalRepositoryManager不兼容。

Gradle


Gradle 8.1 的第一个候选版本发布,该版本提供了如下特性,配置缓存的持续改进,现在可以认为它业已稳定;Kotlin DSL的持续改进,这是 Groovy DSL 的替代方案,包括 Kotlin DSL 脚本中的实验性简单属性设置;对 JDK 20 的支持。关于这个版本的更多细节,请参阅发布说明


原文链接:

Java News Roundup: JDK 20 Released, Spring Releases, Quarkus, Helidon, Micronaut, Open Liberty


相关阅读:

Java 近期新闻:新 JEP、GraalVM 23 早期访问构建、Infinispan、Mojarra、Micrometer Metrics

Java 20 发布,新特性一览:Amber、Loom 和 Panama 项目

2023-04-04 14:2319488

评论 1 条评论

发布
用户头像
凭什么只发Java近期新闻 是看不起我Python嘛
2023-04-06 09:30 · 浙江
回复
没有更多了
发现更多内容

架构师训练营 1 期第 8 周:性能优化(二)- 作业

灵霄

极客大学架构师训练营

【Java并发编程】阿里最喜欢问的几道线程池的面试题?

java金融

Java 面试 线程池

智慧警务平台搭建,大数据时代下的警务模式

t13823115967

大数据

架构师训练营第六周作业

Geek_xq

【Java并发编程】面试必备之线程池

java金融

线程池

架构师训练营 1 期第 12 周:数据应用(一) - 作业

灵霄

极客大学架构师训练营

也谈“中年焦虑”

程序员架构进阶

方法论 职业规划 中年危机

即构低延迟直播产品L3,打造更优质的实时互动体验

ZEGO即构

博睿数据支持腾讯云函数监控,Serverless时代已来临

博睿数据

Serverless APM 监控

数字资产钱包系统开发及介绍

面试官:我问的是Java内存模型,你回答堆栈方法区干嘛?

Java鱼仔

Java 程序员 JMM 多线程 并发

架构师训练营第五周”技术选型一“总结

随秋

极客大学架构师训练营

架构师训练营 1 期第 9 周:性能优化(三)

灵霄

极客大学架构师训练营

架构师训练营 1 期第 13 周:数据应用(二) - 作业

灵霄

极客大学架构师训练营

IDEA插件:多线程文件下载插件开发

Silently9527

Java 多线程 idea插件 文件传输

LeetCode题解:剑指 Offer 40. 最小的k个数,二叉堆,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

网易有道 iOS二面经验分享

iOSer

ios 面试 网易

生产环境全链路压测建设历程 22:FAQ 1&2

数列科技杨德华

全链路压测 七日更

简明设计模式—创建型

2970

设计模式 Go 语言

一代版本一代神:利用Docker在Win10系统极速体验Django3.1真实异步(Async)任务

刘悦的技术博客

django python3.x 异步 异步任务

AI技术在音视频领域的发展

anyRTC开发者

人工智能 ios android AI WebRTC

架构师训练营第六周总结

Geek_xq

太平金科助力“开局之战”顺利启动,博睿数据“A+N”一体化解决方案全力护航

博睿数据

APM npm AIOPS

架构师训练营 1 期第 10 周:模块分解 - 作业

灵霄

极客大学架构师训练营

架构师训练营 1 期第 11 周:安全稳定 - 作业

灵霄

极客大学架构师训练营

智慧公安情报研判大数据系统分析平台搭建

t13823115967

智慧公安

Devil Fruit恶魔果实APP系统软件开发

系统开发

咨询师的诱惑

escray

程序员 面试 面经

像用户一样测试:不妨犯傻

QualityFocus

软件测试 体验 可用性 用户体验

京东将上线社区团购“京喜拼拼”:社区团购是否是一次泡沫大战

石头IT视角

互联网寒冬下,程序员如何化解危机?答案全在这份阿里Java知识地图里

比伯

Java 编程 程序员 面试 计算机

Java近期新闻:JDK 20发布、Spring多个版本发布、Quarkus、Helidon、Micronaut和Open Liberty_编程语言_Michael Redlich_InfoQ精选文章