springboot 能实现热部署的方式有很多种,官方推荐使用 devtools 热部署,所以在此对其他热部署不做介绍
热部署原理
spring-boot-devtools 模块能够实现热部署,添加类、添加方法、修改配置文件、修改页面等都能实现热部署。原理就是重启项目,但比手动重启快多了,其深层原理是使用了两个ClassLoader。一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为 restart ClassLoader,这样在有代码更改的时候,原来的 restart ClassLoader 被丢弃,重新创建一个 restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启效果
添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional><!--不能被其它模块继承-->
<scope>runtime</scope><!--只在运行时起作用,打包时不打进去-->
</dependency>
只要添加依赖,当你改完代码点击如下按钮 build 就会热发布
注意点
如果使用了 thymeleaf,那一定要配置关