概念:
热部署就是正在运行状态的应用,修改了他的源码之后,在不重新启动的情况下能够自动把增量内容编译并部署到服务器上,使得修改立即生效。热部署为了解决的问题有两个, 一是在开发的时候,修改代码后不需要重启应用就能看到效果,大大提升开发效率;二是生产上运行的程序,可以在不停止运行的情况下进行升级,不影响用户使用。
从Java1.4起,JVM引入了HotSwap,能够在Debug的时候更新类的字节码。所以使用热部署,可以实现修改代码后,无须重启服务就可以加载修改的代码,但是它只能用来更新方法体。作为神器的IDEA自然是支持这一技术的。
热部署的pom:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
开启Java Compiler的自动build:
按住ctrl + shift +alt + / 选择Registry,按照下图标注配置:
热部署的优势:
不再需要反复启动项目,当有java代码改动时,会自动后台重新编译启动项目。
热部署的劣势:
但凡有一点改动,都会重编译,当工程逐渐变大时,也有些耗费性能。