Java 近期新闻:虚拟线程、JReleaser 1.0、Loom 项目、关于 Spring4Shell 的供应商声明

简介: Java 近期新闻综述,包括来自 OpenJDK、JEP 425、JDK 19、Loom 项目的 19-loom+5-429 构建版本、Jakarta EE Starter 实用程序、Spring 里程碑及小版本、Payara 和 JetBrains 关于 Spring4Shell 的声明、JReleaser 1.0、Helidon 2.5.0、JHipster 7.8.1、Hibernate Search 6.1.4、Kotlin 1.6.20 和 JDKMon 17.0.24 等的新特性。

OpenJDK

JEP 425,虚拟线程(预览版),从其 JEP 草案(Draft)8277131提升为候选(Candidate)状态。 该 JEP 将虚拟线程引入到 Java 平台中,这是一种轻量级线程,可以极大地减少编写、维护及观测高吞吐量并发应用程序的工作量。

JEP 草案 8284289,获取异步调用跟踪分析的改进方式,这是一个特性 JEP 类型,它定义了一个高效的 API,用于从带有 Java 和本机帧信息的信号处理程序中获取异步调用跟踪信息以进行分析。

JEP 草案 8284453,在JFR中可选的记录线程上下文(Optionally Record Thread Context in JFR),这是一个特性 JEP 类型,它建议增加将用户定义的相关事件上下文附加到现有的标准 JFR 堆栈跟踪、线程 ID 和时间事件中的能力。

JDK 19

甲骨文(Oracle)的 Java 平台组首席架构师Mark Reinhold对 JDK 19 的发布提议了以下的时间表:

2022 年 6 月 9 日:Rampdown 第一阶段(从主干源码库分支创建)

2022 年 7 月 21 日:Rampdown 第二阶段

2022 年 8 月 11 日:首次发布候选版本

2022 年 8 月 25 日:最终发布候选版本

2022 年 9 月 20 日:正式发布

该提案在 2022 年 4 月 13 日之前将继续接受审查以征求意见,直到最终确定。目前,JDK 19 只有一个新特性,JEP 422:Linux/RISC-V移植。

JDK 19早期访问构建版本的第17版已于上周发布,其中包括对第 16 版中各种问题的修复及更新。更多详细信息请参阅发布说明。

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

Loom 项目

Loom 项目的早期访问构建版本的 19-loom+5-429 版已经面向 Java 社区发布,它是基于 JDK 19 早期访问构建版本的第16版的。这个最新版本的特性是对ForkJoinPool 类进行了更新,这样可以提高在消息传递等情况下性能。

Jakarta EE Starter

Jakarta EE Ambassadors已经推出了Jakarta Starter实用程序的 1.0 版,这是一个 Maven 原型,可以生成示例代码以构建简单的 Jakarta EE 微服务项目。Jakarta Starter 已经在 JDK 8、JDK 11 和 JDK 17 上测试过了,它需要 Maven 3+。

Spring 框架

在通往代号为 Kilburn 的Spring Cloud 2022.0.0 的道路上,第二个里程碑版本已经发布,其中包括对其子项目的一系列的改进、缺陷修复和依赖升级:Spring Cloud Stream、Spring Cloud Config、 Spring Cloud Kubernetes、Spring Cloud Contract、Spring Cloud Gateway、Spring Cloud Function、Spring Cloud Commons。然而,也有一些破坏性的变更。Spring Cloud 2022.0.0-M2 与Spring Boot 3.0.0-M2 兼容。有关该版本的更多详细信息,请参阅发布说明。

Spring Cloud Data Flow 2.9.4 已经发布,它解决了漏洞CVE-2022-22965(又名 Spring4Shell)和CVE-2021-29425。还对 Spring Boot 2.5.12 进行了依赖项升级。有关该版本的更多详细信息,请参阅发布说明。

关于 Spring4Shell 漏洞的供应商声明
Payara 关于 Payara 平台的声明:

2022 年 3 月在 Spring Java 框架中检测到的远程代码执行(RCE)漏洞(被标记为 CVE-2022-22965)不太可能影响使用 Payara 平台的用户。

然而,在 Payara Server 中部署 Spring Framework WAR 打包应用程序的用户会受到这个漏洞的影响,因为 Payara Server 在其 Servlet 实现(即 Catalina)中共享了代码片段,该实现最初是从 Apache Tomcat 分支出来的。

为了降低此漏洞的影响风险,我们实施了一个紧急修复,该修复可以有效地禁用 Catalina 相应模块中受影响的代码。该修复将被包含在即将发布的 Payara 社区版(5.2022.2)和 Payara 企业版(5.38)中。

JetBrains 关于 JetBrains 产品的声明:

我们与产品团队一起对 JetBrains Web 应用程序进行了审计,包括的产品有:YouTrack、Hub、TeamCity、Space, Datalore, 服务有: JetBrains Website和JetBrainsAccount。

上面列出的应用程序都没有使用易受攻击的 Spring 版本,或者不符合已知的攻击标准,因此不受已发现的安全问题的影响。请参考以下有关TeamCity、Hub和YouTrack的技术讨论。

JReleaser

在JReleaser初始版本0.1.0发布后的一周年之际,预期内的 1.0 版本也已发布,它附带了许多新特性,比如:基于发布者的下载 URL 添加格式化功能;允许使用 appName 和 appVersion 属性的命名模板;可跳过模板文件的选项;并添加了一个 packageVersion 属性来解决 Chocolate 的版本方案问题。

关于这个版本的更多详细信息可以查看变更日志,与 JReleaser 的创建者Andres Almiray的采访问答可以查看InfoQ新闻报道。

Helidon

甲骨文(Oracle)发布了Helidon 2.5.0,它提供了以下特性:改进的 Oracle 云基础设施(Oracle Cloud Infrastructure,OCI)的 Java SDK 支持;改进了 JAX-RS 的实现,以支持 @Path 注解;以及一些缺陷修复和依赖升级。有关该版本的更多详细信息,请参阅发布说明。

JHipster

在7.8.0版本发布了一周之后,JHipster的 7.8.1 版发布了,其中包括:许多库的升级;并修复了CVE-2022-24815漏洞,即在创建带有响应式 SQL 后端的应用程序时进行 SQL 注入的漏洞。有关该版本的更多详细信息请参阅变更日志。

Hibernate

Hibernate Search 6.1.4.Final已发布,其特性包括:对Hibernate ORM 6.0.0.Final 和Hibernate Commons Annotations 6.0.0.Final 的-orm6 构件进行了升级;将 -orm6 和 -Jakarta 构件的 Jakarta 依赖项升级至最新版本;在 Lucene 后端的多个查询中使用 SearchSort 接口实例,以消除副作用;以及一个对 Elasticsearch 后端的修复,在该后端中,对从未被索引的动态字段进行了排序。

Kotlin

JetBrains发布了Kotlin 1.6.20,其特性包括:支持在Kotlin/JVM中定义上下文相关的声明;改进了与通用 Java 类和接口的互操作性;在 JVM IR 后端并行编译单个模块,从而加快了构建时间;通过Kotlin/JS IR 中的增量编译,简化了开发体验;Kotlin/Native性能的改进;由于多平台项目的层次结构,改进了代码共享。有关该版本的更多详细信息,请参阅InfoQ的新闻报道。

JDKMon

最新版本的JDKMon是一个监控和更新已安装 JDK 的新工具,已面向 Java 社区发布。它由 Azul 的首席工程师Gerrit Grunwald创建,版本 17.0.24 附带的特性包括:与 JDKMon 的 Linux 版本相关的修复,以及 CVEs 指示符的替换。OpenJDK 版本的 Ubuntu 版本将被检测,但是在Disco API中不支持更新。

了解更多软件开发与相关领域知识,点击访问 InfoQ 官网:https://www.infoq.cn/,获取更多精彩内容!

目录
相关文章
|
1月前
|
Java 开发者
Java多线程编程中的常见误区与最佳实践####
本文深入剖析了Java多线程编程中开发者常遇到的几个典型误区,如对`start()`与`run()`方法的混淆使用、忽视线程安全问题、错误处理未同步的共享变量等,并针对这些问题提出了具体的解决方案和最佳实践。通过实例代码对比,直观展示了正确与错误的实现方式,旨在帮助读者构建更加健壮、高效的多线程应用程序。 ####
|
20天前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
38 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
6天前
|
安全 Java API
java如何请求接口然后终止某个线程
通过本文的介绍,您应该能够理解如何在Java中请求接口并根据返回结果终止某个线程。合理使用标志位或 `interrupt`方法可以确保线程的安全终止,而处理好网络请求中的各种异常情况,可以提高程序的稳定性和可靠性。
37 6
|
21天前
|
设计模式 Java 开发者
Java多线程编程的陷阱与解决方案####
本文深入探讨了Java多线程编程中常见的问题及其解决策略。通过分析竞态条件、死锁、活锁等典型场景,并结合代码示例和实用技巧,帮助开发者有效避免这些陷阱,提升并发程序的稳定性和性能。 ####
|
19天前
|
存储 监控 小程序
Java中的线程池优化实践####
本文深入探讨了Java中线程池的工作原理,分析了常见的线程池类型及其适用场景,并通过实际案例展示了如何根据应用需求进行线程池的优化配置。文章首先介绍了线程池的基本概念和核心参数,随后详细阐述了几种常见的线程池实现(如FixedThreadPool、CachedThreadPool、ScheduledThreadPool等)的特点及使用场景。接着,通过一个电商系统订单处理的实际案例,分析了线程池参数设置不当导致的性能问题,并提出了相应的优化策略。最终,总结了线程池优化的最佳实践,旨在帮助开发者更好地利用Java线程池提升应用性能和稳定性。 ####
|
21天前
|
缓存 Java 开发者
Java多线程编程的陷阱与最佳实践####
本文深入探讨了Java多线程编程中常见的陷阱,如竞态条件、死锁和内存一致性错误,并提供了实用的避免策略。通过分析典型错误案例,本文旨在帮助开发者更好地理解和掌握多线程环境下的编程技巧,从而提升并发程序的稳定性和性能。 ####
|
15天前
|
安全 算法 Java
Java多线程编程中的陷阱与最佳实践####
本文探讨了Java多线程编程中常见的陷阱,并介绍了如何通过最佳实践来避免这些问题。我们将从基础概念入手,逐步深入到具体的代码示例,帮助开发者更好地理解和应用多线程技术。无论是初学者还是有经验的开发者,都能从中获得有价值的见解和建议。 ####
|
15天前
|
Java 调度
Java中的多线程编程与并发控制
本文深入探讨了Java编程语言中多线程编程的基础知识和并发控制机制。文章首先介绍了多线程的基本概念,包括线程的定义、生命周期以及在Java中创建和管理线程的方法。接着,详细讲解了Java提供的同步机制,如synchronized关键字、wait()和notify()方法等,以及如何通过这些机制实现线程间的协调与通信。最后,本文还讨论了一些常见的并发问题,例如死锁、竞态条件等,并提供了相应的解决策略。
40 3
|
16天前
|
监控 Java 开发者
深入理解Java中的线程池实现原理及其性能优化####
本文旨在揭示Java中线程池的核心工作机制,通过剖析其背后的设计思想与实现细节,为读者提供一份详尽的线程池性能优化指南。不同于传统的技术教程,本文将采用一种互动式探索的方式,带领大家从理论到实践,逐步揭开线程池高效管理线程资源的奥秘。无论你是Java并发编程的初学者,还是寻求性能调优技巧的资深开发者,都能在本文中找到有价值的内容。 ####
|
21天前
|
缓存 Java 开发者
Java多线程并发编程:同步机制与实践应用
本文深入探讨Java多线程中的同步机制,分析了多线程并发带来的数据不一致等问题,详细介绍了`synchronized`关键字、`ReentrantLock`显式锁及`ReentrantReadWriteLock`读写锁的应用,结合代码示例展示了如何有效解决竞态条件,提升程序性能与稳定性。
77 6
下一篇
DataWorks