Java 近期新闻:OpenJDK 更新、Spring Framework 6.0-M3、Helidon 3.0-M1、JobRunr 5.0-M1

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 2022 年 3 月 14 日发布的 Java 近期综述,包括来自 OpenJDK、JDK 19、Spring Framework 6.0-M3 和 5.3.17、Spring Tools 4.14.0、Quarkus 2.7.5、Helidon 3.0-M1、2022 年 3 月的 Payara 平台、Open Liberty 22.0.0.3 和 22.0.0.4-beta、Hibernate ORM 5.6.7、Hibernate Search 6.1.3 和 6.0.9、Jobrener 5.0-RC1、Apache Camel 3.11.6、Piranha 22.3.0.0 的新特性

2022 年 3 月 14 日发布的 Java 近期综述,包括来自 OpenJDK、JDK 19、Spring Framework 6.0-M3 和 5.3.17、Spring Tools 4.14.0、Quarkus 2.7.5、Helidon 3.0-M1、2022 年 3 月的 Payara 平台、Open Liberty 22.0.0.3 和 22.0.0.4-beta、Hibernate ORM 5.6.7、Hibernate Search 6.1.3 和 6.0.9、Jobrener 5.0-RC1、Apache Camel 3.11.6、Piranha 22.3.0.0 的新特性,JReleaser 的更新,以及 Java 意义重大的原因。

OpenJDK

在为期一周的审查结束之后,JEP 422,即Linux/RISC-V移植,已经从 JDK 19 的 Proposed to Target 状态提升到了 Targeted 状态。该 JEP 提议将 JDK 移植到 Linux/RISC-V,这是一种免费的开源 RISC 指令集架构。它将会支持模板解释器、C1 和 C2 JIT 编译器,以及所有当前主流的 GC,包括 ZGC 和 Shenandoah。该 JEP 的重点是将该移植集成到 JDK 主线代码库中。

JEP 草案 8283227,即JDK源代码结构,是一个信息性的 JEP,描述了 JDK 源代码和 JDK 代码库中相关文件的整体布局和结构。该 JEP 旨在帮助开发人员适应 JEP 201(模块化源代码)所描述的源代码结构,JEP 201 在 JDK 9 中发布。

JEP 草案 8283291,即扩展操作码(Extended Opcodes),是一个基础设施 JEP,提议可以超越任意的单字节流限制释放更多的操作码,这将为未来项目中的新指令和 JVM 的增强留出更多空间。

JDK 18

JDK 18仍处于候选发布阶段,预计将于 2022 年 3 月 22 日发布 GA 版本。发布说明中包含了一些文档链接,比如完整的API规范和一个带注释的API规范,这些规范比较了 JDK 17(第35版)和 JDK 18(第37版)之间的差异。InfoQ 将会继续跟进相关消息并发布更详细的新闻报道。

JDK 19

JDK19早期访问构建版本的第14版已于上周发布,其中包括对第 13 版中各种问题的修复及更新。更多详细信息请查看发布说明。

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

Spring 框架

Spring Framework 6.0.0-M3 和 5.3.17 已于上周发布。

5.3.17 版本提供了一些新特性,比如:在客户端 REST 测试中支持自定义的 HTTP 状态;修复了 AsyncRestTemplate类中日志记录过于冗长的问题;并在创建大型数组后改进了Spring表达式语言(Spring Expression Language,SpEL)的诊断功能。更多有关 5.3.17 版本的详细信息,请查阅发布说明。

Spring 6.0 的第三个里程碑版本的特性是对Spring Native的 Ahead-of-Time 引擎进行了初步迁移,这将在整个 Spring 生态系统中提供全面的原生支持。更多有关 6.0.0-M3 版本的详细信息,请查阅发布说明。

Spring Tools 4.14.0 已发布,其中包含对 Eclipse IDE 2022-03 的依赖项升级,并修复了以下问题:JDK 17 被错误地识别为 JDK 8;Windows 上 Outline View 再次崩溃;VSCode 扩展偶尔会向“问题”区域发送诊断条目;以及 VSCode Spring 引导工具查找 JVM 时报错。更多详细请查看变更日志。

Quarkus

Quarkus 2.7.5.Final 已发布,它是第五个维护版本,其中包括一些文档改进和缺陷修复,比如:curl URL 和注释格式;SmallRye GraphQL 客户端中的依赖项;配置资源不存在时的 NullPointerException ;并在 JAX-RS 方法的泛型返回类型中支持通配符。更多有关该版本的详细信息,请查看变更日志。

Helidon

甲骨文发布了 Helidon 3.0 的第一个里程碑版本,其特性包括支持 MicroProfile 5.0,即将 javax 迁移到 Jakarta EE 9 的 jakarta 命名空间;以及最低要求需 JDK 17+。因此,将不再支持 JDK 11。

Payara

Payara已经发布了其Payara Platform的 2022 年 3 月版,该版本为企业版。Payara Platform Enterprise 5.37.0 版提供了 8 个缺陷修复、1 个组件升级和 2 个改进:一个仅适用于远程命令的本地 asadmin 命令自动完成程序;以及 WebConsole 中更新的安装目录工具提示。更多有关该版本的详细信息,请查阅发布说明。

Open Liberty

IBM 已将 Open Liberty 22.0.0.3 的beta版本提升为 deliver 版本,以修复一些值得注意的缺陷,比如: @RolesAllowed 注解拒绝已认证的用户;Jakarta JSON Processing 2.0和Jakarta JSON Binding 2.0容器(构件分别为 jsonpContainer-2.0 和 jsonbContainer-2.0 )错误地提供了默认的提供者。该版本还允许在事务恢复日志中执行 SQL 操作。

Open Liberty 22.0.0.4-beta 版也已发布,其特性支持 MicroProfile GraphQL 2.0、JDK 18 和分布式安全缓存,这样多个 Liberty 服务器可以通过 JCache 共享缓存。

Hibernate

Hibernate ORM 5.6.7.Final 在短命的 5.6.6.Final 之后也发布。5.6.6.Final 会显示一些令人困惑的弃用警告。

Hibernate Search的 6.1.3.Final 和 6.0.9.Final 版本也已发布,其特性包含对 Hibernate ORM 5.6.7.Final 的升级,以及用于 Hibernate ORM 6.0.0.CR2 的-orm6 构件 。

JobRunr

JobRunr是一个在 Java 中执行后台处理的实用工具,它上周发布了5.0.0-RC1版本,添加了对以下特性的支持:按指定的时间间隔调度重复作业;SLF4J 的映射诊断上下文;Spring Native;以及 JobRunr Fluent API中的 MicroMeter。更多详细信息请查阅发布说明。

Apache Camel

Apache 软件基金会在 Camel 3.11 版本的发布序列中提供了一个新的 LTS 小版本发布。3.11.6 版本包含了 23 个缺陷修复和改进,并对 Spring Boot 的 2.6.4 和 2.5.10 版本、Camel Spring Boot中的 Spring Boot 2.5.9 和 log4j 2.17.1 进行了依赖项升级,更多详细信息请查看发布说明。

Piranha

Piranha 22.3.0 已发布。这个版本被称为“我们春季的大扫除”,包括:项目内部清理;添加标记文件,以指示服务器变体的启动/停止状态;列出已部署的服务器变体应用程序;添加可由 IDE 引用的调试模块,以获取所有依赖项和源代码。更多详细信息请查看他们的文档和问题追踪。

JReleaser

在通往 1.0.0 版的道路上,JReleaser更新了一个早期访问版本,其特性包括:允许文件和目录属性的字符串输入;并在发现不可解析的标签时修复不正确的选择提交。

Java 仍然意义重大的七个原因
最近,在 Foojay.io 上的一篇博客文章中,Contrast Security 的高级软件工程师Bazlur Rahman,讨论了 Java 在 26 年后仍然意义重大的 7 个原因,以下列表来自他与 Java 开发人员的多次讨论,并结合了他在 Java 社区和使用平台的个人经验:

  • 社区
  • 语言和平台
  • 解决的问题比其他任何生态系统都多
  • 稳定性
  • 创新
  • 工具
  • 就业机会

Rahman 指出,开发人员“应该投资于一个拥有坚实基础、可靠、成熟、经过验证的产品组合”,因为开发人员需要在特定编程语言上投入大量的时间。

作者简介:

Michael Redlich 是位于新泽西州克林顿的埃克森美孚工程研究部门高级研究员(他在本文中的观点和意见仅代表他自己,和他的雇主无关)。他是一名 IT 专业人士,拥有罗格斯大学计算机科学学士学位。自 2001 年以来,他一直是花园州 Java 用户组(原 ACGNJ Java 用户组)的主持人,同时也是一位经验丰富的会议发言人,在加入 InfoQ 之前与 Barry Burd 合作撰写了多篇文章。自 1989 年 12 月以来,作为埃克森公司和埃克森美孚公司的长期雇员,Mike 在公司中承担了许多任务,包括汽车测试、从事利用红外光谱学和化学计量学的分析科学研究、开发科学方面的 IT 应用,他目前的任务是从事利用流变学和聚合物物理学的高分子科学研究。在他的职业生涯中,Mike 发展了自己的领导能力,他曾担任新泽西州业余计算机小组(一个非营利性的 501(c)(3)计算机教育组织)的主席,目前则担任花园州 Java 用户组(也是一个非营利性的 501(c)(3)组织)的主管。Mike 是国际演讲协会的成员,最近取得了高级沟通者银牌证书。他酷爱跑步和骑行,完成了许多马拉松比赛。Mike 与他的妻子 Rowena 居住在新泽西州弗莱明顿,他们在那里共度美好时光,骑行或跑步,旅行的话,则主要是到洛杉矶的新奥尔良和里约热内卢的新港。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
24天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
64 2
|
11天前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
28 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
1月前
|
人工智能 前端开发 Java
基于开源框架Spring AI Alibaba快速构建Java应用
本文旨在帮助开发者快速掌握并应用 Spring AI Alibaba,提升基于 Java 的大模型应用开发效率和安全性。
基于开源框架Spring AI Alibaba快速构建Java应用
|
2月前
|
前端开发 Java 数据库连接
Spring 框架:Java 开发者的春天
Spring 框架是一个功能强大的开源框架,主要用于简化 Java 企业级应用的开发,由被称为“Spring 之父”的 Rod Johnson 于 2002 年提出并创立,并由Pivotal团队维护。
66 1
Spring 框架:Java 开发者的春天
|
2月前
|
Java 数据库连接 开发者
Spring 框架:Java 开发者的春天
【10月更文挑战第27天】Spring 框架由 Rod Johnson 在 2002 年创建,旨在解决 Java 企业级开发中的复杂性问题。它通过控制反转(IOC)和面向切面的编程(AOP)等核心机制,提供了轻量级的容器和丰富的功能,支持 Web 开发、数据访问等领域,显著提高了开发效率和应用的可维护性。Spring 拥有强大的社区支持和丰富的生态系统,是 Java 开发不可或缺的工具。
|
2月前
|
JSON Java Maven
实现Java Spring Boot FCM推送教程
本指南介绍了如何在Spring Boot项目中集成Firebase云消息服务(FCM),包括创建项目、添加依赖、配置服务账户密钥、编写推送服务类以及发送消息等步骤,帮助开发者快速实现推送通知功能。
95 2
|
23天前
|
Java 数据库连接 API
Spring 框架的介绍(Java EE 学习笔记02)
Spring是一个由Rod Johnson开发的轻量级Java SE/EE一站式开源框架,旨在解决Java EE应用中的多种问题。它采用非侵入式设计,通过IoC和AOP技术简化了Java应用的开发流程,降低了组件间的耦合度,支持事务管理和多种框架的无缝集成,极大提升了开发效率和代码质量。Spring 5引入了响应式编程等新特性,进一步增强了框架的功能性和灵活性。
40 0
|
2月前
|
存储 人工智能 Java
将 Spring AI 与 LLM 结合使用以生成 Java 测试
AIDocumentLibraryChat 项目通过 GitHub URL 为指定的 Java 类生成测试代码,支持 granite-code 和 deepseek-coder-v2 模型。项目包括控制器、服务和配置,能处理源代码解析、依赖加载及测试代码生成,旨在评估 LLM 对开发测试的支持能力。
48 1
|
3月前
|
人工智能 开发框架 Java
重磅发布!AI 驱动的 Java 开发框架:Spring AI Alibaba
随着生成式 AI 的快速发展,基于 AI 开发框架构建 AI 应用的诉求迅速增长,涌现出了包括 LangChain、LlamaIndex 等开发框架,但大部分框架只提供了 Python 语言的实现。但这些开发框架对于国内习惯了 Spring 开发范式的 Java 开发者而言,并非十分友好和丝滑。因此,我们基于 Spring AI 发布并快速演进 Spring AI Alibaba,通过提供一种方便的 API 抽象,帮助 Java 开发者简化 AI 应用的开发。同时,提供了完整的开源配套,包括可观测、网关、消息队列、配置中心等。
2646 15
|
2月前
|
Java BI 调度
Java Spring的定时任务的配置和使用
遵循上述步骤,你就可以在Spring应用中轻松地配置和使用定时任务,满足各种定时处理需求。
154 1