引言
平时如果我们修改了自己项目的代码后,都要重新运行启动类,才能使新的项目生效,配置了热部署后,我们就可以让 IDEA 自动帮我们重启项目了。
IDEA 配置热部署主要是针对 Spring Boot 项目的。
步骤1
在项目中引入 【Spring Boot DevTools】依赖
步骤2
开启 IDEA 的自动编译。
当前项目和新项目的自动编译都需要开启自动编译。
步骤3
此步骤分为 IDEA 旧版本,和 IDEA 新版本。
旧版本一般是 2021 年之前的版本,新版本一般是 2021 之后的版本,但也并不绝对。
IDEA 旧版本
开启程序运行中的热部署,如果在旧版本中搜索不到 " registry ",那么就尝试着下面的新版本。
IDEA 新版本
热部署的缺点
配置过热部署的小伙伴,有时候,我们可能会发现代码没有编写错误,我们检查了前端、后端、交互路径,也没有出错,但是程序就是运行错误。很有可能就是出现了热部署导致文件的丢失情况。
就拿前端发送 ajax 请求的例子来说,刚开始我运行的时候,一切就绪,但访问总是出错,后来才发现是 " jQuery 文件 " 丢失了。因为 ajax 请求需要 " jQuery 文件 " 作为依赖,如果少了此文件,那么就无法正常发送 HTTP 请求。
如上图所示,编译之前的 jQuery 依赖文件还好好地存在 【main】目录中,但是,当 IDEA 生成了 " .class " 文件时,同样的 jQuery 文件却消失了。然而,我们知道,JVM 是只对 " .class " 文件进行运行的,它并不认识 " .java " 文件。
遇到这种情况,我们就应该把整个 【target】目录删除,并重新运行启动类即可。如果不删除此目录重新启动无数次也没用!因为【target】目录依旧有缓存。
总结
热部署的原理,实际上就是 IDEA 后台检测我们的代码是否发生了改变,如果代码改变了,那么 IDEA 就会自动帮我们 " 编译 + 运行 ",然而,它需要有一个过程,一般来说,需要 " 3 ~ 5 秒 ",IDEA 才能真正地重启 Spring Boot 项目。
所以,后来我就将热部署关掉了,或许它并不适合我,我认为每次重启也挺方便的,而且不会出错,热部署每次还要等上几秒,有强迫症的小伙伴,建议关掉。
如果以后 IDEA 对热部署进行了非常好的优化,我们也可以重用。