Springboot项目启动时,main函数之前的代码执行两次一次是main一次是restartedMain

37 篇文章 1 订阅
20 篇文章 0 订阅
文章讲述了在使用SpringBoot项目时,VerifyBeforeStartUp方法被意外执行两次的问题,经排查发现是由于热部署插件spring-boot-devtools引起的。解决方案是移除该依赖,或者禁用热部署功能。
摘要由CSDN通过智能技术生成

我的应用场景是在项目启动之前做一些验证,如果验证通过则正常启动项目,否则不允许启动。
代码如下:

    public class CMSApplication {
    public static void main(String[] args) throws Exception{
        VerifyBeforeStartUp.verifyBeforeStartUp();
        SpringApplication.run(CMSApplication.class,args);
    }

但是我发现VerifyBeforeStartUp.verifyBeforeStartUp();这块被执行了两次。而且在控制台上显示的第二次的线程名为restartedMain

2017-12-28 18:21:08: INFO [main] c.e.c.c.l .java:29 - oswindows 7
2017-12-28 18:21:08: INFO [main] c.e.c.c.l .java:32 - This is windows
2017-12-28 18:21:09: INFO [restartedMain] c.e.c.c.l.v.VerifyBeforeStartUp 
2017-12-28 18:21:09: INFO [restartedMain] c.e.c.c.l.u.SystemTool SystemTool.java:29 - oswindows 7

后来查询资料后发现是热部署的插件引起的,多以去掉以下依赖就OK了。

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
        </dependency>

说明:必须去掉对于依赖才能解决重启一次问题。使用下面的配置是无法解决这个问题的。

spring.devtools.restart.enabled=false

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值