【发布时间】:2016-02-29 19:44:54
【问题描述】:
我正在将 Java 7 迁移到 Java 8,并尝试继续使用 Spring 3.2。当尝试运行应用程序时,抛出 spring bean 创建错误。创建名为“某事”的 bean 时出错:无法创建内部 bean ...等。
我没有看到任何与应用程序相关的问题,Spring 3.2 是否与 Java8 兼容? 否则我应该升级 Spring 4.0 吗?
【问题讨论】:
我正在将 Java 7 迁移到 Java 8,并尝试继续使用 Spring 3.2。当尝试运行应用程序时,抛出 spring bean 创建错误。创建名为“某事”的 bean 时出错:无法创建内部 bean ...等。
我没有看到任何与应用程序相关的问题,Spring 3.2 是否与 Java8 兼容? 否则我应该升级 Spring 4.0 吗?
【问题讨论】:
3.2.x 系列中的 Java 8 支持:
Spring Framework 3.2.x 基于 ASM 和 CGLIB 的未打补丁的重新打包版本。此时,计划为 Spring 3.2.9 的 ASM 5.0.1 和 CGLIB 3.1,提供基本的 Java 8 字节码兼容性。然而,对于 Spring Framework 4 的本地分叉版本的 ASM,已经有一个超越 ASM 5.0.1 的补丁以及针对“-parameters”编译器标志的附加 CGLIB 3.1 兼容性补丁,所有这些都计划进入 Spring Framework 4.0.4。 . 因此,如果 Java 8 字节码处理有任何问题,特别是结合“-parameters”标志,我们强烈建议您升级到 Spring Framework 4.0.4+。这不会在 3.2.9 中解决,因为我们不会再在那里引入本地 ASM 分叉。
Spring Framework 3.2.x 使用 AspectJ 1.7.4。要在 AspectJ 中完全支持 Java 8,您必须使用 AspectJ 1.8。我们只是在 Spring Framework 4.0.4+ 中正式支持 AspectJ 1.8 final...即使它也可能与 Spring Framework 3.2.x 一起使用,我们也没有正式支持它。
总而言之,Spring Framework 3.2.9 中的 Java 8 支持在接受 Java 8 字节码级别方面只是“尽力而为”。如需全面的 Java 8 支持,请使用 Spring 4+。
【讨论】:
Spring 当前版本是 Spring 4.3.0
您如何期望 2013-14 年发布的 Spring 3.2 有望支持 java 8? 2014年年中发布。
Spring 3.2 不支持 java 8。
是的 Spring 4.x 支持 java 8
【讨论】: