闽公网安备 35020302035485号
<!-- devtools热部署依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<!-- 防止将依赖传递到其他模块中 -->
<optional>true</optional>
</dependency>
2.2、添加相关配置参数META-INF/maven/**,META-INF/resources/**,resources/**,static/**,public/**,templates/**,**/*Test.class,**/*Tests.class,git.properties,META-INF/build-info.properties这些目录通常用于存放静态资源,由于 spring-boot-devtools 工具默认开启了禁用缓存的操作,当文件发生修改时可以实时更新,无需重启应用。当然,我们也可以在application.properties全局文件中指定配置,比如只排除/static、/public和/templates 目录中的文件修改重启操作,额外监控src/main/java目录下的文件修改时自动重启应用。
# 开启热部署(更改文件后,自动重启) spring.devtools.restart.enabled=true # 设置哪些资源变动后不触发自动重启,会覆盖默认的exclude内容(资源不会触发重启,但会触发实时重新加载) spring.devtools.restart.exclude=static/**,public/**,templates/** # 设置需要监控额外的路径,当内容发生变化会出发自动重启(优先于exclude) spring.devtools.restart.additional-paths=src/main/java2.3、IDEA 配置

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<!-- 启用热部署功能(如果devtools不生效) -->
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
大部分情况下,经过实测,没有这个配置也可以实现自动重启服务,具体以实际情况而定。<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p th:text="${content}">内容替换</p>
</body>
</html>
接着,创建一个视图接口,内容如下:@Controller
public class HelloController {
@GetMapping("/")
public String index(ModelMap map) {
// 绑定元素
map.addAttribute("content", "Hello World");
return "index";
}
}
最后,启动服务,在浏览器中访问http://localhost:8080/。

spring.devtools.restart.enabled=false也可以在启动命令中增加-Dspring.devtools.restart.enabled=false参数来进行关闭。自动重启将不再被触发,但是仍将使用自动重启类加载器。如果你想完全禁用类加载器,可以在启动应用程序之前强制设置,示例如下。
public static void main(String[] args) {
System.setProperty("spring.devtools.restart.enabled", "false");
SpringApplication.run(Application.class, args);
}
四、小结