SpringOne Platform 会议最近在华盛顿特区举行,会上发布和宣布了诸多事项。Spring 框架的联合创始人兼 Pivotal 的首席工程师 Juergen Hoeller 讨论了 Java 8、Java 新的发布节奏,并宣布 Spring 框架 5.1 版本将会支持刚刚发布的 Java 11。

Hoeller 首先引用了去年的一项调查:

迄今为止,Java 8 是 Java 历史上应用最广泛的平台版本。它的应用范围超过了 Java 6。但是,我们将会迎来一种破坏性的 Java 发布节奏。

对于这种新的发布节奏,Hoeller 花了些时间讨论 Spring 如何支持不同的 Java 版本。Spring 框架 4.3 最多只会支持到 Java 8。Spring 框架 5.0 最初支持 Java 9,Spring 框架 5.1 最低需要 JDK 8 并正式支持 Java 11。在他的主题演讲中,Hoeller 明确表示之前版本的 Spring 框架将不会正式提供对 Java 11 以及更高版本的支持。

除了对 Java 11 的支持之外,Spring 5.1 还有许多重要的改进,包括与最近发布的 Reactor Californium 和 Hibernate ORM 5.3 的集成。

另外,框架内部对反射的使用也进行了优化,以便于改善启动时间和降低堆内存消耗,核心容器为 Java 和 Kotlin 都引入了函数式 bean 定义的改进。

在 Java 和 Kotlin 的函数式 bean API 方面,我们花费了很多的时间进行调优。现在,我们有了新的检索 API,在对反射的使用以及内部元数据的主动缓存方面我们进行了许多优化,以改善启动时间和减少 GC 压力。

Pivotol 还花费了很多的时间在 Graal 兼容性上,这是一个多语言的新 JIT 编译器和运行时,Hoeller 将其描述为“来自 Oracle 的非常有意思的研究成果”。

通过预编译,我们所交付的二进制文件要比传统 JVM 快得多,我们已经在 Spring 5.1 上做了很多准备工作,它能够理解很多限制,我们计划在 Spring 框架 5.2 版本中交付一个完整的 Graal 兼容性 story。

Web 应用技术栈也得到了很多的关注,从端点一直到核心容器都有对用户体验更好的调试日志。它还包含了一个 DSL 风格的构建器,用于函数式 Web 端点,并为 Netty 运行时扩展了对 WebFlux HTTP/2 的支持。

关于 Java 新的发布节奏对 Spring 所带来的影响,Hoeller 这样说到:

在可预见的未来,Java 8 将会作为我们的基准。整个生态系统都是或者将是以 Java 8 为基础的。2023 年之前,Java 8 会有来自业界许多利益相关者的支持承诺。因此,从一个保守组织的角度来看,Java 8 是一个很好的基准。

刚刚发布的 Java 11 是 Java 的下一个长期支持版本,Hoeller 将其视为 Java 8 的替代方案。就像 Java 8 一样,它也得到了很多供应商的长期支持承诺,包括 Oracle、Azul、Red Hat、IBM 和 SAP,它们承诺会支持到 2023 年甚至更久。

在此之后,下一个长期支持的发布版本将会是 2021 年的 Java 17。Hoeller 说到,“坦白来讲,我预计非 LTS 的 Java 发布版本受众将会很有限。在 17 版本之前,我希望人们保持使用 8 或 11 版本”。