原理: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