spring-boot热部署 支持当修改并保存内容之后会自动重启项目,在代码开发调试时很方便。
在pom.xml中引入spring-boot-devtools
org.springframework.boot
spring-boot-devtools
true
在plugin中添加fork
org.springframework.boot
spring-boot-maven-plugin
true
但debug时发现,第一次启动会莫名进入SilentExitExceptionHandler.exitCurrentThread方法。
Spring Boot项目使用了spring-boot-devtools工具且在Eclipse中Debug调试会自动跳转到这个方法:
public static void exitCurrentThread() {
throw new SilentEitException();
}
看日志发现线程名从main变成了restartedMain,应该是此处引起线程退出,自己没有打断点,无法取消。
原因:
出现这种状况是因为Eclipse默认开启挂起未捕获的异常(Suspend execution on uncaught exceptions),只要关闭此项就可以了
解决方法:
Eclipse->【Preferences】->【Java】->【Debug】:去掉【Suspend execution on uncaught exceptions】前面的勾。