华人澳洲中文论坛

热图推荐

    Spring Boot 3 使用 Java 17 和 Jakarta EE 9,并反对GraalVM 的原生 Java

    [复制链接]

    2022-12-21 21:33:52 34 0

    作者 | Karsten Silz
    译者 | 张卫滨
    策动 | 丁晓昀
    VMware公布了人们期待已久的Spring Framework 6和 Spring Boot 3。在 Spring Framework 5 公布五年之后,这些版本公布开启了 Spring 生态零碎的新篇章。Spring Framework 6 需求 Java 17 和 Jakarta EE 9,并兼容比来公布的 Jakarta EE 10。它还经过 Micrometer 嵌入了可观测性,反对跟踪和度量。Spring Boot 3 需求 Spring Framework 6。它内置反对经过 GraalVM Native Image 的动态事后(Ahead-of-Time,AOT)编译创立原生可履行文件。
    VMware 的软件工程初级总监 Michael Minella 告知 InfoQ:
    Spring 采用的办法是让 Spring 开发者在现有的专业常识根底上获得原生编译的收益,而无需进行少量的变卦,这在全部生态零碎中是并世无双的。VMware 在 SpringOne 2021 会议上宣告了 Spring Framework 6 和 Spring Boot 3。从 2010 年以来,这是 Spring Framework 第一次在上一个主公布版本两年后(2020 年的 5.3 版本),而不是一年后公布更新。在比来的一次采访中,Java Champion 和 Spring 开发人员提倡者 Josh Long 在探讨 Spring Framework 6 开发时间延伸时表现:
    “关于咱们这些框架开发者来讲,迁徙至 Jakarta EE 是颇有应战性的”,“可观测性任务也波及得多之处”,“与 GraalVM Native Image 的事后(Ahead-of-Time,AOT)编译相干的任务[...]最少从 2019 年开始就以某种方式展开了”。对于这两个版本相干内容的更多信息,请拜见对Josh Long的采访。
    反对 Jakarta EE 10 使得 Spring Framework 6 可以兼容最新的 web 办事器,好比 Tomcat 10.1、Jetty 十一 和 Undertow 2.3。Spring Framework 6 还简化了 HTTP 申请,这是经过将它们定义在所谓的 HTTP 接口中完成的,它相似于 Spring Data JPA 经过资源库(repository)接口简化了数据库查问。借助 RFC 7807 问题详情,HTTP 过错信息也会更有帮忙。
    作为一个预览特性,Spring Framework 6 能够使用 Java 19 中来自Loom名目的虚构线程。虚构线程及其相干的构造化并发 API 简化了 Java 中的并发编程,使其运转更为高效。与Oracle不同,Spring 以为虚构线程是对反映式编程的增补,而不是要取代它。
    在 Spring Framework 6 中值得留意的依赖降级包罗 Kotlin 1.7、Hibernate ORM 6.1、用于 JSON 和 XML 解析的 Jackson 2.14 以及用于反映式数据库拜候的 R2DBC 1.0。
    正如 InfoQ 去年报导的那样,Spring Framework 6 最后是方案包孕对 Java Platform Module System(JPMS)的反对的,但这从未完成过。对 JPMS 的反对进行了推延:
    Spring Framework 6.0 强烈关注 AOT 和 GraalVM 原生镜像,以优化基于 Spring 的运用的部署。[...]往年以来,对它[模块反对]的需要十分少。[...]更深化的模块零碎调剂依然是咱们为 Spring Framework 6.x 所制订的长时间技术策略的一部份。OpenJDK 的 Leyden 名目方案优化Java,并依赖于 JPMS 和jlink衔接工具。假如没有 JPMS 反对,Spring 运用将无奈使用这些优化。
    Spring Boot 3 的亮点是反对生成原生可履行文件。这些可履行文件启动更快,使用的内存更少,容器镜像更小,并且更平安。这使得 Java 在云中更有竞争力。Quarkus、Micronaut 和 Helidon 这些框架使原生可履行文件在 Java 中盛行了起来。InfoQ 比来就这个话题颁发了六篇系列文章。当开发人员的机器上装置了 GraalVM Native Image 编译器后,用 Spring Boot 3 创立一个原生可履行文件只需运转./mvnw -Pnative package./gradlew nativeCompile便可。更多细节能够在参阅这篇博客文章。
    Jakarta EE 9 将 Java 命名空间从javax.*改成jakarta.*。假如现有的 Spring 和 Spring Boot 运用顺序导入了 Jakarta EE 类型,如注解、校验或 JPA,就需求对其进行修正。这就是为何比来推出的Spring Boot Migrator名目正在“努力于从 Spring Boot 2.7 自动降级到 Spring Boot 3.0”。
    VMware 缩短了 Spring Framework 6 的商业和开源反对期限。正如 VMware 的 Spring Framework 名目担任人 Juergen Hoeller 所说:
    咱们冀望人们更快地降级到最新的 6.x 特性版本。而 Spring Boot 3.0 的收费反对期限仍为一年。
    VMware 将在 2023 年 1 月 24 日至 26 日的虚构 SpringOne 会议上探讨其新版本,SpringOne原方案于 2022 年 十二 月举办线下的会议。
    Spring Boot 3 and Spring Framework 6 Use Java 17 and Jakarta EE 9, Support Native Java with GraalVM
    对话Spring大神:Spring 生态零碎的新时期来了!
    Spring Boot 3将于2022年十一月公布,提早了对Java模块零碎的反对
    Spring Boot Migrator简介

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    返回列表 本版积分规则

    :
    注册会员
    :
    论坛短信
    :
    未填写
    :
    未填写
    :
    未填写

    主题31

    帖子42

    积分191

    图文推荐