IDEA 热部署特性
热部署,即应用正属于运行状态时,我们对应用源码进行了修改更新,在不重新启动应用的情况下,可以能够自动的把更新的内容重新进行编译并部署到服务器上,使修改立即生效。
现象
在使用 IntelliJ IDEA运行 SpringBoot 项目时,你可能会遇到一个令人困扰的问题:一旦你的鼠标指针离开当前IDE窗口,点击其他位置时, IDE 窗口会失去焦点,你的 SpringBoot 服务就会自动重启。尽管这并不一定妨碍你的项目运行,但是它无疑会打断你的开发流程,特别是当你在进行长时间的任务时。
解决方案
打开IDEA的Configuration
打开后,如下图所示:
On frame deactivation : 当失去焦点
该配置项便是配置IDEA失焦时的执行方案,IDEA共有三种策略:
- Do nothing : 不做任何事 (一般推荐这个,因为失去焦点的几率太大)
- Update resources : 失去焦点后,修改的resources文件都会立刻生效
- Update classes and resources : 失去焦点后,修改的java ,resources文件都会立刻生效(与On update action中的Update classes and resources一样,也是运行模式修改的java文件不会生效,debug模式修改的java文件会立刻生效)
当我们勾选Update classes and resources,当IDEA失焦时,IDEA便会自动更新classes and resources文件,重新编译Spring Boot工程重启服务,因此,如果你不想使用IDEA默认的方案,修改IDEA失焦后的动作为Do nothing或Update resources,修改完成后,点击Apply或OK即可。