写点什么

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:2320854

评论 1 条评论

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

在北京web前端培训后好找工作

小谷哥

react源码中的fiber架构

flyzz177

React

「聚变」前端 & 客户端 | 第十七届 D2 终端技术大会,来了

阿里巴巴终端技术

阿里巴巴 前端 移动端 客户端 D2

使用参数非参数和机器学习方法分析印度降雨变化,能给我国带来什么警示?

GPU算力

TiKV 源码阅读三部曲(二)读流程

PingCAP

TiKV 源码解读

线下面授前端培训哪个机构好

小谷哥

“科技与狠活”梗爆火,食品安全焦虑问题怎么破?

旺链科技

区块链 产业区块链 食品安全 企业号十月PK榜

navicat 绿化版

源字节1号

软件开发 前端开发 后端开发 小程序开发

大数据技术培训零基础学习怎么样

小谷哥

C++中的多态

可口也可樂

c++ 多态 10月月更

数据结构-二叉树中的操作

可口也可樂

数据结构 二叉树 10月月更

IPv4 用完,如今花钱才能重新使用获取?

郑州埃文科技

IP

告别宽表,用DQL成就新一代BI

石臻臻的杂货铺

大数据 BI 10月月更

ShareSDK iOS端 UniversalLink生成最佳实践

MobTech袤博科技

ios universal link

java培训和自学相比效果如何

小谷哥

在vue的v-for中,key为什么不能用index?

bb_xiaxia1998

Vue

浅谈OpenHarmony LiteOS-A内核之基础硬件——中断控制器GIC400

OpenHarmony开发者

OpenHarmony

如何实现车联网的灵活数据采集

EMQ映云科技

车联网 物联网 IoT 数据采集 10月月更

使用实时3D渲染软件创建身临其境的数字体验

Finovy Cloud

3D渲染 云渲染 图像软件

java中HashMap的设计精妙在哪?

华为云开发者联盟

Java 开发 华为云 企业号十月 PK 榜

一图看懂融云「百幄」数智办公平台

融云 RongCloud

办公 数智化

IM跨平台技术学习(六):网易云信基于Electron的IM消息全文检索技术实践

JackJiang

一文看懂Vue2和Vue3中设置404界面

木偶

Vue 前端 10月月更

每日一题之Vue数据劫持原理是什么?

bb_xiaxia1998

Vue

react源码中的hooks

flyzz177

React

C++中的继承

可口也可樂

c++ 继承 10月月更

GaiaX开源解读 | 基于优酷业务特色的跨平台技术

阿里巴巴文娱技术

开源 移动开发 移动端开发

前端高频vue面试题合集

bb_xiaxia1998

Vue

论文解读丨CIKM'22 MARINA:An MLP-Attention Model for Multivariate Time-Series Analysis

华为云开发者联盟

数据库 后端 华为云 企业号十月 PK 榜

Python多任务实现方式(一)-----多进程

木偶

Python 进程 10月月更

大数据技术培训零基础学习怎么样

小谷哥

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