优雅编程(四)——热部署
程序员文章站
2022-07-12 20:57:45
...
优雅编程(四)——热部署
引子
在开发SpringBoot的Web应用时,经常需要的重启Web服务器才能使最新修改的代码、配置文件、静态文件生效,这样就不够“优雅”了。想要改变这种情况也并不繁琐,需要我们加入“热部署”的支持,就可以在不重启Web服务器的情况下保证各项文件的修改立即生效。
正文
在IDEA中开发SpringBoot应用时,如果想加入热部署的加持,可以使用spring-boot-devtools来完成:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
spring-boot-devtools会监听classpath下的文件变动,变动保存生效,其就会立即重启应用。
设置IDEA环境自动编译,首先开启设置中的项目自动编译选项:
然后Find Action,找到Registry…打开,找到并勾选compiler.automake.allow.when.app.running:
其实,完成上述步骤后,热部署就已经默认开启了。测试一下:
启动应用,去浏览器中请求一下/hello:
然后去加一个Controller方法:
@RestController
public class Controller {
public String hello(String temp){
return "hello";
}
}
稍等片刻,控制台就有重启应用的相关日志:
重新发起请求:
此时的效果是只要我们修改了编辑区的源代码,保存之后,应用程序便会自动重启让修改生效。
可以在application.properties中自定义热部署的配置:
#热部署生效,默认为true开启
spring.devtools.restart.enabled=true
#监听某个静态文件夹下文件的变化(如html文件),当其下面的文件改变的时候能够重新启动SpringBoot
spring.devtools.restart.additional-paths=src/main/resources/templates
#classpath目录下的WEB-INF文件夹内容修改不重启
spring.devtools.restart.exclude=WEB-INF/**
上一篇: Java中常用集合&线程安全的集合
推荐阅读