这里说一下我遇到的情况,有时候写项目的时候突然前面还好好的,突然写了一些代码之后,启动不起来了。然后分析之后发现有些Bean对象在Config配置中被执行了两次,第一次有值,第二次莫名就读取不到值了,然后导致项目启动不起来。
这里我就介绍一下我遇到该问题的一个解决方式,大家可以尝试一下,大家跟我情况类似,可以顺着我的思路去操作一下。
在大家的项目里看一下是否引入了Spring的单元测试依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
我的项目启动在Debug模式下启动执行两遍就是因为这个。我的猜测大概是可能是我的test包下也写了测试用例,导致底层在Debug模式下会特殊执行一次SpringBootTest类似的东西,如果有大神能具体知道什么原理,可以评论里跟我说一下,感激不尽。
解决办法
1.去掉test依赖
哈哈,我相当于说废话了,大家如果真加了这个依赖,肯定是有需要,咋可能去掉,不过去掉是肯定可以。
2.第一种test包下别写测试类
在不去掉test依赖的情况下,不要在test包下写任何的测试类。小伙伴看到这里肯定心想:“丫的,妈妈生的,你搁这废话呢?”。
3.跳过测试
我们在idea中找到setting里面,搜索Runner
然后勾上skip tests
就行了,这样启动的时候人家就不会去看你test底下的玩意了。