公众号:CodeMarker
一.简介
最近接触一个SpringBoot 项目。当项目开发完成后调试阶段,会出现每修改一个地方,为了看到修改效果,都需要对程序restart。频繁的restart未免有点太费时了。之前有听过热部署功能,对修改的代码,能自动编译运行,但是一直都没有机会试,借这个机会,来分享一下SpringBoot热部署功能如何实现!
二.开发工具
SpringBoot 2.0.0 IDEA
三.操作步骤
- 创建maven项目。
- 在pom文件中添加如下配置:
- 点开 【File】-【Settings】-【Build,Execution,Deployment】-【Compiler】-勾选右侧的【Build project automatically】
- 按Ctrl+Shift+A,在搜索框中输入registry,并打开搜索到的该项设置。
- 找到compiler.automake.allow.when.app.running项,打钩。
6.最后一步:重启IEDA。
四.原理介绍
Spring-boot-devtools使用了两个ClassLoader,一个Classloader加载一些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为 restart ClassLoader,这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间(5秒以内)。
注:在使用eclipse开发时,项目是会自动编译 但是在IDEA 中需要使用ctrl+F9才能重新编译。
想要学习SpringBoot,这里有免费视频哦!
链接:https://pan.baidu.com/s/16C2sqtU5ICLKPMksBLdgaA
提取码:7ke7