【问题标题】:java 7 to java 8 migration spring bean creation exceptionjava 7 到 java 8 迁移 spring bean 创建异常
【发布时间】: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 spring


【解决方案1】:

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+。

详情请咨询https://jira.spring.io/browse/SPR-11656

【讨论】:

    【解决方案2】:

    Spring 当前版本是 Spring 4.3.0

    您如何期望 2013-14 年发布的 Spring 3.2 有望支持 java 8? 2014年年中发布。

    Spring 3.2 不支持 java 8。

    是的 Spring 4.x 支持 java 8

    【讨论】:

    • 为什么Spring 3.2不能兼容Java8? Java8向后兼容Java7,所以只要不使用任何Java8特性应该没有问题。
    • @Ralph 当您不使用 Java 8 的功能时,使用它的目的是什么。这对我来说没有任何意义。
    • @Ralph 在尝试使用 Java 8 进行编译时,很有可能会出现 Unsupported major version 问题。与其试图让生活变得复杂,不如使用 Spring 4.x,因为你可以找到Java 和 Spring 的许多增强和功能
    • @PragnaniKinnera 我明白你的意思,但我还没有使用任何 java 8 的新特性。
    • @Pragnani Kinnera:当前的Spring版本是4.2.5; 4.3 版尚未发布 - 但我认为这只是一个错字。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-12
    • 2012-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-23
    • 1970-01-01
    相关资源
    最近更新 更多