Spring Boot 自动重启(spring-boot-devtools)

时间:2022-02-13 23:22:49

原文 https://github.com/x113773/testall/issues/8

1. 首先添加依赖
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
```

2. 然后就可以了,当修改Classpath下的文件时,就会自动重启。

- 该工具会默认排除掉如下目录: /META-INF/resources、 /resources、 /static、 /public和
/templates;
- 可以设置spring.devtools.restart.exclude属性来覆盖默认的重启排除目录;
例如,只排除/static和/templates目录:`spring.devtools.restart.exclude=/static/**,/templates/**`

---
注意事项:
1. 我在debug启动时,项目启动结束时停到了如下位置:
```
public static void exitCurrentThread() {
throw new SilentExitException();
}
```
不过倒不影响项目运行,自动启动也是可以的,在*上找到的解决方案是:
Eclipse -> Preferences ->Java ->Debug
去掉"Suspend execution on uncaught exceptions"前面的勾;

参考资料:[Breakpoint at “throw new SilentExitException()” in Eclipse + Spring Boot](https://*.com/questions/32770884/breakpoint-at-throw-new-silentexitexception-in-eclipse-spring-boot)

2. 网上还有博文说要在maven插件里加fork配置,然而我没加也好用,甚至把maven插件去掉了也没影响。

```
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!--fork : 如果没有该项配置,肯呢个devtools不会起作用,即应用不会restart -->
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
```

Spring Boot 自动重启(spring-boot-devtools)