使用idea springboot热部署 通过spring-boot-devtools方式
1 在pom.xml中添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>true</scope>
</dependency>
2 添加相应的插件
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
3 在Edit configurations 运行应用打开窗口
VM options设置 -javaagent:D:\ProgramFiles\springloaded-1.2.5.RELEASE.jar -noverify
4 使用google浏览器测试(这步必须)
关闭浏览器缓存(重要)打开谷歌浏览器,打开F12的Network选项栏,然后勾选【✅】Disable cache 。
通过实测
启动项目测试 :
1重新启动端口是否能被关闭
2修改一个方法能否热部署
3添加一个方法能否热部署
4添加一个类能否热部署
5修改配置文件能否热部署
发现都是成功的。由此热部署便配置好了
其原理是使用了两个classLoader ,一个是Classloader加载那些不会改变的类如第三方jar ,另一个ClassLoader加载那些会改变的类成为restart ClassLoader ,这样有代码更改的时候原来的,restart ClassLoader 在创建一个新的restart ClassLoader 加载的类相对较少所以启动比较快,便达到热部署的效果。