在开发SpringBoot项目过程中,你有没有遇到如下的问题:每次修改java代码,都得重新run一下Application才会生效。起初我也遇到了这样的问题,但SpringBoot这种成熟的框架,怎么可能不支持热部署呢。本篇,我们就了解下SpringBoot的热部署,这为我们后续的SpringBoot开发之旅节省很多的时间。
目录
一、手动热部署
二、自动热部署
一、手动热部署
SpringBoot官方为我们提供了热部署的能力,打开热部署的功能也很简单,只需要导入如下依赖即可:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
导入依赖后,这里特别需要注意:需要sync一下maven,并且重新run一次,否则热部署是不生效的:
配置完成后,后续代码修改不需要重新run,只需要build一下(点击锤子或者快捷键)就可以重新运行,例如修改输出信息由888改为777:
二、自动热部署
可能上面这种方式大家也觉得麻烦,修改代码后仍然需要手动build一下,唯一的区别可能就是比重新run要快一些。那么,能不能做到修改代码后自动build呢?当然可以的。但其实,我觉得与其叫自动热部署,还不如叫自动编译更合适。
1、设置自动编译
2、设置 allow-auto-make-running
好了,到这里,自动热部署就配置完成了。这时候就会有同学发现一个问题:咦,我修改了代码,为什么没有自动编译重启呢?
自动热部署其实也需要有触发的动作,也就是你得告诉IDEA你需要热部署。要不你停下来的这段时间,IDEA怎么判断你是还在修改代码的过程中呢,还是说已经修改完成了呢?
触发的方式是IDEA失去焦点5秒或者ctrl + s保存代码
其实我觉得,没太有必要配置自动热部署,其实手动就可以了。原因是自动热部署需要有触发的信号,其实也是类似手动触发,你觉得呢?