写点什么

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

评论 1 条评论

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

云开发CloudBase集成腾讯数字身份管控平台CIAM,快速实现账号管理

腾讯安全

网易云音乐网络库跨平台化实践

网易云信

数据库 网络库 跨平台化

送给正在入行的小白:最全最有用的网络安全学习路线已经安排上了

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

2021最新一线互联网大厂常见高并发面试题解析,springcloud视频百度云

Java 程序员 后端

数字化学习分享+一场思维探索工作坊+引导回顾会+公开演讲

研发管理Jojo

数字化转型 敏捷教练 咨询

元宇宙让我们实现“办公自由”?想要远程办公,保证员工效率和有效管理才是关键!

极狐GitLab

WeTest与腾讯安全联合推出小程序质量方案,助力私域流量2.0新增长

WeTest

CSS页面设计稿构思与实现(四)之自定义字体

Augus

CSS 11月日更

2021最新常见200+Java面试题汇总(含答案解析),unity高级工程师面试题

Java 程序员 后端

【福利】腾讯WeTest专有云,限时开放招募体验官

WeTest

博睿数据APM适配欧拉开源操作系统,为开发者性能体验保驾护航

博睿数据

模块三作业

panxiaochun

架构实战营

2021最新华为面经分享:Java高分面试指南(25分类1000题50w字解析)

Java 程序员 后端

阿里内网疯狂传阅的“M8级”分布式架构笔记,GitHub刚上线就霸榜

Java 编程 程序员 架构 阿里

不愧是GitHub上标星120K的Java手册,全程干货,只讲重点

收到请回复

Java 程序员 后端 面试技巧

2021年10月券商App行情刷新及交易体验评测报告,兴业证券荣登榜首!

博睿数据

质量基础设施一站式云服务平台搭建,NQI一站式服务平台

电微13828808271

2021最新38道Spring大厂面试题,你碰到过哪道?,java开发工程师百度百科

Java 程序员 后端

发布两小时,霸榜GitHub Spring Boot实战文档

Java GitHub spring 编程 程序员

完美诠释Netty,腾讯强推599页Netty进阶神技,惊掉我的下巴

Java 编程 程序员 Netty

Gartner:对中国央行数字货币的创新见解

WorkPlus

从开始到放弃:某高校电子校友卡开发笔记

CC同学

万字长文手写数据库连接池,让抽象工厂不再抽象

Tom弹架构

Java 架构 设计模式

大数据实践:数据指标中心的建设思路

大数据技术指南

11月日更

通用排序框架在爱奇艺推荐的应用

爱奇艺技术产品团队

爱奇艺基于SpringCloud的韧性能力建设

爱奇艺技术产品团队

WorkPlus移动门户开启数字化智慧办公新模式

WorkPlus

2021最新出炉BAT架构实战文档:多线程与高并发+分布式+微服务,泛微网络java面试题

Java 程序员 后端

全捐了,华为将欧拉开源操作系统代码、品牌等相关资产捐赠!!!

WorkPlus

今天面了个腾讯拿 38K 出来的,让我见识到了基础的天花板

Java 程序员 JVM springboot MyBatis标签

百度APP移动研发平台及DevOps实践

百度开发者中心

DevOps 最佳实践 方法论 移动端 百度app

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