SpringBoot启动类报错,有啥办法解决吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot启动类报错,有啥办法解决吗相关的知识,希望对你有一定的参考价值。

参考技术A 你好, 这个原因是maven依赖包冲突,有重复的依赖。 检查一下你引入的jar包里面是不是有相同的方法名。 参考技术B 暂时解决方案:去掉spring 的aop扩展

SpringBoot高版本修改为低版本时测试类报错解决

 有时在使用idea通过Spring Initailizr创建项目时,默认只能创建最近的版本的SpringBoot项目。

这是如果想要换成版本,就可以在项目创建好了之后,在pom文件中直接将版本修改过来。

如下所示

比如在创建项目时默认的版本为2.2.2版本:

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

 

然后我们修改为1.5.10的低版本:

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.10.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

 

这时可能会遇到一个问题,那就是——在高版本时,默认的测试类是没问题可以使用的

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class SpringBootTestWebApplicationTests {

    @Test
    void contextLoads() {
        System.out.println("hello world");
    }

}

 

但是在更换成低版本之后,测试类将会报错,如下所示,无法导入在2.2.2高版本中使用的org.junit.jupiter.api.Test类

 

 

 此时可以做如下修改

1、删除高版本默认导入的org.junit.jupiter.api.Test类,重新导入org.junit.Test类

 

2、在类上添加注释@RunWith(SpringRunner.class),如下图:

 注:

  1. 通过@RunWith注解,更改测试运行器,更改使用的测试类为SpringRunner.class,使之适应spring。
  2. @RunWith(SpringRunner.class)使用了Spring的SpringRunner,以便在测试开始的时候自动创建Spring的应用上下文。其他的想创建spring容器的话,就得子啊web.xml配置classloder。 注解了@RunWith就可以直接使用spring容器,直接使用@Test注解,不用启动spring容器
  3. SpringRunner 继承了SpringJUnit4ClassRunner,没有扩展任何功能(查看源码可以看到public final class SpringRunner extends SpringJUnit4ClassRunner);使用前者,名字简短而已

 

3、将测试类和测试方法都修改为public

 

4、最后修改的测试类如下所示:

package com.susu.springboot;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBootTestApplicationTests {

    @Test
    public void contextLoads() {
        System.out.println("hello world");
    }

}

 

运行结果:

以上是关于SpringBoot启动类报错,有啥办法解决吗的主要内容,如果未能解决你的问题,请参考以下文章

IntellJ IDEAidea启动测试类报错Error running 'Test1.test': Command line is too long. Shorten comma(代

springboot启动项目报错:ERROR:o.s.b.d.LoggingFailureAnalysisReporter解决办法

spring报错。求大神指教

@SpringBootApplication无法被解析引入

启动spring boot报错,怎么解决

错误记录反射内部类报错 ( Android 使用 Hook 时反射内部类报错 )