繁体   English   中英

使用Java 8的Spring 3.2.x.

[英]Spring 3.2.x with Java 8

我们目前正在使用spring 3.2.9。 我们正在考虑将其升级到更新版本。 当我检查文档时,它说明了这一点

与4.0 M1一起,我们发布了Spring Framework 3.2.3,其中包含针对最近报告的问题的修复,但也提供了OpenJDK 8运行时支持。 对于针对JDK 7(带-target 1.7)或更早版本编译的应用程序,Spring Framework 3.2.x将支持在JDK 8运行时上进行部署。

这是否意味着我无法在Java 8上编译?
如果我想用Java 8编译,我应该使用Spring 4.0.x版吗?

从3.2.x开始,3.2.x中有JDK8的尽力支持。

有关3.2.9中的初始支持,请参阅SPR- 11656;有关3.2.10中的字节码支持改进,请参阅SPR- 11979 请注意评论中解释的支持限制。

要获得对JDK8的全面支持,请升级到Spring 4.x - 这是一个专门的维基页面,解释升级路径 ,Spring团队努力使升级体验变得非常简单。

早于4.0M1的Spring Framework版本不适用于为Java 8编译的类。

Spring试图通过读取类文件来代理这些类,如果它们“太新”,它将无法工作。 如果使用Java 8编译@Service类作为目标,Spring将无法在启动时加载类。

这意味着如果要定位Java 8(并使用lambdas,默认实现等),则必须升级到Spring 4.xx.

我几个月前在一个使用Spring 3.xx的项目中遇到了这个问题

根据我的观察,你可以使用在Java 8中编译的代码实际使用spring 3, 只要你在扫描的路径中不使用新的java8语法 (如lambdas)。

因此,您可以使用新的API(流...),但不能使用新的语法(lambdas ...)。

当我尝试时,我最终遇到启动错误,如org.springframework.beans.factory.BeanDefinitionStoreException:无法读取候选组件类

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM