采用devtools实现热部署

在开发过程中,我们经常需要编写边测试验证,没改动一次代码保存手动重启服务相对有些繁琐,springboot给我们提供了devtools热部署的方案,下面直接将实践案例整理:

1、首先在POM文件中添加依赖:
org.springframework.boot
spring-boot-devtools
true

2、此时还需要在编译插件中修改如下:
org.springframework.boot
spring-boot-maven-plugin
1.7
1.7
true

3、此时我们直接对之前的servlet3先请求

修改如下直接再次请求(不手动重启服务)

正如我们期望的,服务实现热部署,重新加载我们修改类编译文件后自动重启,此时尝试修改jsp、ftl、thymeleaf各类型的页面,均能够实现重新加载,但不重启服务。

补充:
  • 默认情况下,/META-INF/maven,/META-INF/resources,/resources,/static,/templates,/public这些文件夹下的文件修改不会使应用重启,但是会重新加载(devtools内嵌了一个LiveReload server,当资源发生改变时,浏览器刷新)。
  • 如果想改变默认的设置,可以自己设置不重启的目录:spring.devtools.restart.exclude=static/**,public/**,这样的话,就只有这两个目录下的文件修改不会导致restart操作了。
  • 如果要在保留默认设置的基础上还要添加其他的排除目录:spring.devtools.restart.additional-exclude
  • 如果想要使得当非classpath下的文件发生变化时应用得以重启,使用:spring.devtools.restart.additional-paths,这样devtools就会将该目录列入了监听范围。

你可能感兴趣的:(springboot)