我需要Spring 5 for Java 9吗?

Spring 5被提升为“支持JDK 9”,同时Spring 4.3.13的文档声明它支持Java 8(以及6和7) 。

这是否意味着我需要在可以之前升级到Spring 5

  • 在JRE 9中运行我的应用程序?
  • 使用JDK 9编译我的应用程序?

弹簧

在官方的Spring博客上 ,他们宣布Spring 4.2将支持Java 7和8(它在4.3中没有变化),并且他们还说Spring 5将支持Java 9。

暗示Spring 4不支持Java 9。

但这取决于你正在做什么:在这个博客上 ,作者在春季4测试Java9,他说:

然而,在我们开始之前,快速免责声明:我将演示将Spring 4.x / Spring Boot 1.x应用程序迁移到Java 9.据我所知,在Java 9中几乎没有正式支持到目前为止,一旦我运行应用程序,我没有遇到很多问题,但是,由于这些主要是概念证据,因此尚未经过彻底的审查。

因为“不支持”只意味着你不确定这个组合,如果你在Java9中使用了任何改变的东西,你应该考虑迁移(除非你可以先测试它)。


春季启动

Spring boot 1.x 不支持 Java9。 如果要使用它, 则必须迁移到Spring Boot 2.x.

实际

为了这一点,如果你计划编译使用Spring 4.x和Java9构建的代码,它应该可以正常工作,基于Java9的后备兼容性,虽然对某些实现有疑问,但确切的答案是依赖的当你前进并尝试一些事情时,你对弹簧的使用。

理论

Spring框架的5.0.0-RC1版本在Java 8+的支持下宣布。 该公告还包括为Java9宣布的与开发有关的主题: –

准备好JDK 9 :在运行时,在类路径和模块路径上完全与JDK 9对齐(在后者上:暂时作为基于文件名的“自动模块”)。

该候选人目前可从2017年11月1日起使用 ,可以使用

repositories { maven { url 'http://repo.spring.io/libs-milestone' } } compile "org.springframework.integration:spring-integration-core:5.0.0.RC1" 

在该说明中寻找的某些好消息是:

我们期待GA在几周内 – 正好赶上Spring Boot 2.0 GA


与使用Java 9的Spring Boot相关,要求很明确,因此2.x与1.x分开分类:

Spring Boot 2是第一个支持Java 9的版本(也支持Java 8) 。 如果您使用1.5并希望使用Java 9,则应升级到2.0,因为我们没有计划在Spring Boot 1.5.x上支持Java 9

要密切关注相同的更新,您可以关注Java 9主题跟踪器以及2.0 in Progress。

因此,理想的世界是,迁移到使用Spring 5.x / Spring Boot 2.x和Java 9来获得对最新function的支持以及进一步发现的任何不兼容性。