【问题标题】:Do I need Spring 5 for Java 9?Java 9 需要 Spring 5 吗?
【发布时间】:2017-11-02 16:02:51
【问题描述】:
Spring 5 被宣传为“支持 JDK 9”,同时 Spring 4.3.13 的文档声明它支持Java 8 (as well as 6 and 7)。
这是否意味着我需要先升级到 Spring 5
- 在 JRE 9 中运行我的应用程序?
- 使用 JDK 9 编译我的应用程序?
【问题讨论】:
标签:
java
spring
spring-boot
java-9
【解决方案1】:
春天
在the official Spring blog,他们宣布 Spring 4.2 将支持 Java 7 和 8(在 4.3 中没有改变),他们还表示 Spring 5 将支持 Java 9。
暗示 Spring 4 将不支持 Java 9。
但这取决于你在做什么:this blog,作者正在 Spring 4 上测试 Java9,他说:
但是,在我们开始之前,先简短声明一下:我将演示将 Spring 4.x/Spring Boot 1.x 应用程序迁移到 Java 9。据我所知,两者都几乎没有正式支持在 Java 9 中。到目前为止,一旦我让应用程序运行,我还没有遇到很多问题,但是,由于这些主要是概念证明,它们还没有经过彻底的审查。
因为“不支持”仅表示您不确定该行为,如果您使用 Java9 中更改的任何内容,则应考虑迁移(除非您可以先对其进行测试)。
春季启动
Spring boot 1.x 不支持 Java9。如果你想使用它,你必须迁移到 Spring Boot 2.x。
【解决方案2】:
实际
出于所有这些考虑,如果您计划使用 Java9 编译使用 Spring 4.x 构建的代码,它应该可以正常工作,基于 Java9 的后缀兼容性,尽管对于某些实现和那里的精确答案存在问题将取决于您在继续尝试时对 spring 的使用情况。
理论
Spring 框架的5.0.0-RC1 版本宣布支持Java 8+。该公告还包括为 Java9 声明的与开发相关的主题:-
为 JDK 9 做好准备:在运行时与 JDK 9 完全一致,在类路径上
以及模块路径(在后者上:作为基于文件名的
“自动模块”暂时)。
这个候选人目前是available since November 1, 2017,可以从
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!
关于Spring Boot with Java 9,要求很明确,2.x 和 1.x 分开分类:
Spring Boot 2 是第一个支持 Java 9 的版本(Java 8 也是
支持)。如果您使用的是 1.5 并希望使用 Java 9,您应该
升级到 2.0,因为我们没有计划在 Spring Boot 上支持 Java 9
1.5.x.
要密切关注更新,您可以关注Java 9 theme tracker 和2.0 in Progress.
因此,理想的情况是,迁移到使用 Spring 5.x/Spring Boot 2.x 和 Java 9 以获得对最新功能的支持以及进一步发现的任何不兼容性。