JDK 8的Spring 3.2.8和Junit 4问题

时间:2019-01-29 11:59:12

标签: spring java-8 junit4

我已在Spring 3.2.8中配置了Junit 4,并在其中使用了JDK 8。 这是我的测试控制器类

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { WebConfig.class })
public class TManagerTest {

    @Autowired
    private TestManager  testManager ;

    @Test
    public void test() {
        this.testManager.getAll();
    }

}`

当我尝试运行应用程序时,出现此错误:

  

ASM ClassReader无法解析类文件-可能是由于新的   尚不支持的Java类文件版本:file   ././TManagerTest .java

搜索问题时,我发现Spring 3.x最多支持JDK7。因此它必须与JDK 7一起编译,但我们可以使用JRE 8。

是真的吗?如果是,我的问题是当我创建带有注释的@Service@Controller的类并运行应用程序时,它可以正常工作。为什么仅junit会发生错误?如果是这种情况,那么除了junit之外,它也不能使用。

如果我想使用带有jdk 8的spring 3.2.8,

1 个答案:

答案 0 :(得分:1)

如果要将代码编译为Java 8(目标1.8),则需要Spring 4,但如果在Spring 3.2.x上运行,则仍可以在编译为Java 7的Java 8上运行应用程序。

根据spring reference documentation

  

请注意,Java 8字节码级别(-target 1.8,由   从Spring Framework 4.0开始,仅完全支持-source 1.8)。特别是,基于Spring 3.2的应用程序需要使用   即使恰好部署了它们,最多也要以Java 7为目标   到Java 8运行时。请升级到基于Java 8的Spring 4   应用程序。