Java 近期新闻:JDK 19 的 JEPs、 Lilliput 项目的里程碑版本、Spring 框架、Quarkus 2.9.0

简介: Java 近期新闻综述,涉及来自 OpenJDK、JDK 19 的 JEPs、Lilliput 项目的里程碑版本、Spring Framework 5.3.20 和 5.2.22、Open Liberty 22.0.0.5 和 22.0.0.6-beta、Quarkus 2.9.0.Final、Apache Camel Quarkus 2.9.0、WildFly Preview 27 Alpha1、Hibernate Search 6.1.5、JobRunr 5.1.1、Piranha 22.5.0、Failsafe 3.2.4 等的特性,以及 Micronaut 的调查结果和 Devoxx

OpenJDK

甲骨文(Oracle)的 Java 平台组首席架构师Mark Reinhold提议将当前的 openjdk.java.net 域名迁移到 openjdk.org 。Reinhold 表示,尽管为 Java 社区提供了良好的服务,但是当前的域名还是令人困惑。由于许多 OpenJDK 的开源社区都是在 .org 顶级域名下构建其基础设施的。所以 Reinhold 认为,这种迁移是有益的。

经过一段更长时间(长于通常的一周)的扩展审查后,JDK 19 对于 JEP 427,Switch模式匹配(第三个预览版本)已从 Proposed to Target提升为 Targeted。该 JEP 在Amber项目的赞助下,整合了对前两轮预览反馈的增强改进:JEP 406,Switch模式匹配(预览版)(在 JDK 17 中提供)和 JEP 420,Switch模式匹配(第二个预览版本)(在 JDK 18 中提供)。对 JEP 420 进行的更改包括:用 switch 块中的 when 子句替换守护模式(Guarded Patterns);当选择器表达式的值为 null 时,模式开关的运行时语义与遗留开关的语义更加一致。

经过为期一周的审查,JEP 424,外部函数和内存API(预览版),已经从 JDK 19 的 Proposed to Target 提升到 Targeted 状态。该 JEP 在Panama项目的赞助下不断演进:JEP 419,外部函数和内存API(第二个孵化版本),在 JDK 18 中提供;和 JEP 412,外部函数和内存API(孵化版),在 JDK 17 中提供;整合了基于 Java 社区反馈的改进。

最初被命名为记录模式和数据模式(预览版)的 JEP 405,记录模式(预览版),已经从 JDK 19 的 Candidate提升到 Proposed to Target 状态了。该 JEP 也是在 Amber 项目的赞助下,提议使用记录模式来增强语言,以解构记录值。记录模式可以与类型模式结合使用,以“支持强大的、声明式的、并可组合的数据导航和处理形式”。最近,通过 JEP 406,Switch模式匹配(预览版)(在 JDK 17 中提供)和 JEP 420,Switch模式匹配(第二个预览版本)(在 JDK 18 中提供),扩展了类型模式以用于 switch case 标签。预计审查将于 2022 年 5 月 19 日结束。

JDK 19

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

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

Lilliput 项目

Lilliput项目是由红帽(Red Hat)的 Java 平台高级首席软件工程师Roman Kennke发起的一个 Java 项目,该项目已经到达了第一个里程碑,目标是将对象报头信息减少到 64 位。

Spring 框架

Spring Framework 的5.3.20版本和5.2.22版本已经发布,以提供针对 CVE-2022-22970(通过数据绑定到MultipartFile或Servlet部分进行Spring框架的DoS攻击)以及 CVE-2022-22971(通过WebSocket上的STOMP进行Spring框架的DoS攻击)的修复。这两个版本还通过 CachedIntrospectionResults 类提供了精细化的属性内省。

在通往 Spring Framework 6.0.0 的道路上,第四个里程碑版本已经发布,其中包括了对 5.3.20 版本的所有修复以及 39 个修复和改进,其中包括:删除了过时的 NestedIOException 类; 一个允许 HTTP 状态码不是 Java enum 的新 HttpStatusCode 接口; 以及对Jakarta Concurrency 3.0的支持。`

Open Liberty

IBM 已将 Open Liberty 22.0.0.5 的beta版本升级为交付态: 支持在 sslProtocol 属性上配置多个特定的 SSL/TLS 协议值;引入了一个新的 schemaGen 命令行包装实用程序来启动 ws-schemagen.jar工具的执行;以及修复了多个错误。

Open Liberty 22.0.0.6-beta也已经发布,它具有新的日志记录功能,因此堆栈跟踪信息现在可以合并到单个日志事件中了。

Quarkus

红帽(Red Hat)发布了Quarkus 2.9.0.Final,其特性包括:一种旨在替换密码的新WebAuthn身份验证机制;支持Reactive Routes和RESTEasy Reactive的压缩;支持Confluent Schema Registry和重构模式注册表扩展,以获得更大的灵活性;以及对 Kotlin 1.6.20 和 Scala 2.13 的依赖升级。鼓励开发人员在升级时遵循迁移指南。

Apache Camel Quarkus

为了与 Quarkus 保持一致,Apache 软件基金会发布了包含 Camel 3.16.0 和 Quarkus 2.9.0.Final 的 Camel Quarkus 2.9.0。其新特性包括:改进了对 JBang 的支持;改进了对 Camel 主应用程序的支持,这样使用依赖注入可以更容易地自动发现 Camel 路由、配置类、类型转换器及其他类;以及从 Vault/Secrets 云服务检索特性值的能力。

WildFly

红帽(Red Hat)已经发布了WildFly Preview 27 Alpha1,这是支持 Jakarta EE 10 的一个里程碑式的版本。WildFly 27.0.0.Alpha1 支持上下文和依赖注入(CDI)4.0 规范、CDI Lite 和Hibernate 6.0。该版本在 JDK 11 或 JDK 17 上可能能运行,但是对 JDK 8 的支持已经停止。

Hibernate

Hibernate Search 6.1.5.Final已发布,特性升级包括:Hibernate ORM 5.6.8.Final; Hibernate ORM 6.0.1.Final -orm6 构件; 以及 -orm6 / -jakarta 构件中最新版本的 Jakarta EE 依赖项。 该版本中的修复包括: .flags(Collections.emptySet()) 在定义 simpleQueryString 谓词时禁用所有标志; 在 Lucene 后端使用 .maxTermCount() 定义文本字段上的聚合时不会再导致 OutOfMemoryError 错误;以及使用 outbox-polling 协调策略,防止对特定实体进行索引的路由桥接不会再导致 NullPointerException 。

JobRunr

Ronald Dehuysser是JobRunr的创始人和主要开发人员,JobRunr 是一个在 Java 中执行后台处理的实用程序,其 5.1.1 版本已发布,修复了当org.jobrunr.database.skip-create 属性设置为 false 时抛出 ClosedFileSystemException 的缺陷。

Piranha

Piranha22.5.0 已发布。 该版本被称为“消除代码坏味道”的 2022 年 5 月版,其中包括:删除了一个不稳定的 Mojarra 测试;更新了依赖项;并修复了一些“代码坏味道”。 有关该版本的更多详细信息,请参阅他们的文档和问题跟踪器。

Failsafe

Failsafe是一个轻量级的零依赖库,用于处理 Java 8+中的故障,它的 3.2.4 版本已发布,其中包括额外的线程安全检查特性。有关该版本的更多详细信息,请参阅其变更日志。

Micronaut

基于总共的 650 张投票,Micronaut 4.0 JDK版本调查的结果表明:与基于 JDK 17 的 Micronaut 4.0 相比,几乎有两倍的 Java 开发人员更喜欢基于 JDK 17 的 Micronaut 4.0。

Devoxx UK 会议

Devoxx英国分会(Devoxx UK)已于上周在英国伦敦商业设计中心举行,来自 Java 社区的许多演讲者发表了演讲,并促进了研讨会。

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

目录
相关文章
|
3天前
|
存储 安全 Java
Java 集合框架中的老炮与新秀:HashTable 和 HashMap 谁更胜一筹?
嗨,大家好,我是技术伙伴小米。今天通过讲故事的方式,详细介绍 Java 中 HashMap 和 HashTable 的区别。从版本、线程安全、null 值支持、性能及迭代器行为等方面对比,帮助你轻松应对面试中的经典问题。HashMap 更高效灵活,适合单线程或需手动处理线程安全的场景;HashTable 较古老,线程安全但性能不佳。现代项目推荐使用 ConcurrentHashMap。关注我的公众号“软件求生”,获取更多技术干货!
22 3
|
2月前
|
Java 数据库
在Java中使用Seata框架实现分布式事务的详细步骤
通过以上步骤,利用 Seata 框架可以实现较为简单的分布式事务处理。在实际应用中,还需要根据具体业务需求进行更详细的配置和处理。同时,要注意处理各种异常情况,以确保分布式事务的正确执行。
|
2月前
|
消息中间件 Java Kafka
在Java中实现分布式事务的常用框架和方法
总之,选择合适的分布式事务框架和方法需要综合考虑业务需求、性能、复杂度等因素。不同的框架和方法都有其特点和适用场景,需要根据具体情况进行评估和选择。同时,随着技术的不断发展,分布式事务的解决方案也在不断更新和完善,以更好地满足业务的需求。你还可以进一步深入研究和了解这些框架和方法,以便在实际应用中更好地实现分布式事务管理。
|
2月前
|
存储 缓存 安全
Java 集合框架优化:从基础到高级应用
《Java集合框架优化:从基础到高级应用》深入解析Java集合框架的核心原理与优化技巧,涵盖列表、集合、映射等常用数据结构,结合实际案例,指导开发者高效使用和优化Java集合。
43 4
|
2月前
|
Oracle 安全 Java
深入理解Java生态:JDK与JVM的区分与协作
Java作为一种广泛使用的编程语言,其生态中有两个核心组件:JDK(Java Development Kit)和JVM(Java Virtual Machine)。本文将深入探讨这两个组件的区别、联系以及它们在Java开发和运行中的作用。
87 1
|
2月前
|
开发框架 Java 关系型数据库
Java哪个框架适合开发API接口?
在快速发展的软件开发领域,API接口连接了不同的系统和服务。Java作为成熟的编程语言,其生态系统中出现了许多API开发框架。Magic-API因其独特优势和强大功能,成为Java开发者优选的API开发框架。本文将从核心优势、实际应用价值及未来展望等方面,深入探讨Magic-API为何值得选择。
64 2
|
2月前
|
IDE Java 编译器
开发 Java 程序一定要安装 JDK 吗
开发Java程序通常需要安装JDK(Java Development Kit),因为它包含了编译、运行和调试Java程序所需的各种工具和环境。不过,某些集成开发环境(IDE)可能内置了JDK,或可使用在线Java编辑器,无需单独安装。
83 1
|
2月前
|
Java 数据库连接 API
Spring 框架的介绍(Java EE 学习笔记02)
Spring是一个由Rod Johnson开发的轻量级Java SE/EE一站式开源框架,旨在解决Java EE应用中的多种问题。它采用非侵入式设计,通过IoC和AOP技术简化了Java应用的开发流程,降低了组件间的耦合度,支持事务管理和多种框架的无缝集成,极大提升了开发效率和代码质量。Spring 5引入了响应式编程等新特性,进一步增强了框架的功能性和灵活性。
50 0
|
6月前
|
Java 测试技术 数据库
Spring Boot中的项目属性配置
本节课主要讲解了 Spring Boot 中如何在业务代码中读取相关配置,包括单一配置和多个配置项,在微服务中,这种情况非常常见,往往会有很多其他微服务需要调用,所以封装一个配置类来接收这些配置是个很好的处理方式。除此之外,例如数据库相关的连接参数等等,也可以放到一个配置类中,其他遇到类似的场景,都可以这么处理。最后介绍了开发环境和生产环境配置的快速切换方式,省去了项目部署时,诸多配置信息的修改。
|
Java 关系型数据库 MySQL
Spring Boot项目属性配置
Spring Boot项目属性配置
193 0