原理:springboot重启是reload重启,通过监控classpath的变化,如果classpath中文件发生了变化,即触发重启。
1.springboot提供的spring-boot-devtools包来完成springboot应用热部署
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
2.默认是排除static和templates,即静态资源修改的话也需要重新编译,但是不会reload
spring.devtools.restart.exclude=static/**,templates/**
3.可以对默认配置之外的进行配置
spring.devtools.restart.additional-exclude=public/**
4.禁止自动重启,可以将热部署依赖包去掉,还可以在配置文件中写:
spring.devtools.restart.enabled=false
5.可以定义一个重启策略,指定一个文件,当指定文件改变时点击编译才会进行重启,否则即使点击编译也不会重启
spring.devtools.restart.trigger-file=trigger.file