IDEA中使用SpringBoot 热启动

在开发过程中,当写完一个功能我们需要运行应用程序测试,可能这个小功能中存在多个小bug,我们需要改正后重启服务器,这无形之中拖慢了开发的速度增加了开发时间,SpringBoot提供了spring-boot-devtools,使我们在更改应用和配置文件的时候,自动重启应用!

配置步骤

  1. 打开pom.xml文件添加依赖
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-devtools</artifactId>
   <scope>runtime</scope>
   <optional>true</optional>
</dependency>

 只要classpath下的文件有变动,它就会自动重启。这在使用IDE时非常有用,因为可以很快得到代码改变的反馈。默认情况下,classpath下任何指向文件夹的实体都会被监控,注意一些资源的修改比如静态assets,视图模板不需要重启应用。
  由于DevTools监控classpath下的资源,所以唯一触发重启的方式就是更新classpath。在Eclipse里,保存一个修改的文件将引起classpath更新,并触发重启。在IntelliJ IDEA中,默认是不自动编译的,我们需要设置自动编译。

  1. 设置IDEA自动编译
    (1).快捷键Ctrl+Alt+S打开设置,在Build,Execotion,Deployment->Compiler->勾选Build Project automatically项,重启IDEA
    在这里插入图片描述
    (2).快捷键Ctrl + Shift + Alt + /,选择Registry
    在这里插入图片描述
    (3).勾选 compiler.automake.allow.when.app running和compiler.document.save.enabled(指定是否启用保存项目响应当文档被更改),并将它们的对应的保存动作延时时间适当缩小,或者使用默认值也可以。当然,我没修改它的默认值的时候,发现项目修改的时候,它自动重新热启动的时间有点久(可缩小对应时间或者参考本文下一段解决方法)。
    在这里插入图片描述
    重启应用,当改动代码时,观察控制台输出,你会发现Spring Boot已经检测到了文件变化,并重新启动,你会发现体验为何如此之棒,爽极了!

注意,如果你没修改保存动作的延时时间或者是IDE闲置时间少于指定的毫秒数,导致了你修改代码并刷新页面,发现并没有改变或者项目没有重新热启动,你可以在你更改的代码文件处使用快捷键ctrl+f9,重新build project,等待项目重新热启动完毕,然后再刷新页面即可。

如果你使用的是模板引擎,由于模板引擎的页面默认是开启缓存的,在开发阶段可以先将它关闭。

# Thymeleaf的配置:
spring.thymeleaf.cache=false
# FreeMarker的配置:
spring.freemarker.cache=false
# Groovy的配置:
spring.groovy.template.cache=false
# Velocity的配置:
spring.velocity.cache=false

热启动与热部署的区别

热启动是指在已经运行的项目上,再次启动(比如说,做了修改代码),少加载了一些东西,从而启动的比快,节省开发时间。
热部署会启动自动加载修改代码的部分,而idea 本身不支持热部署,需要在idea中安装插件JRebel。

参考文章

SpringBoot热启动让开发更便捷
Can’t get devtools auto build service working on Windows…

猜你喜欢

转载自blog.csdn.net/CPOHUI/article/details/105702482