什么是热部署?热部署解决的问题?
1、在开发的时候,修改代码后不需要重启应用就能看到效果,大大提升开发效率;
2、生产上运行的程序,可以在不停止运行的情况下进行升级,不影响用户使用。
总而言之,就是修改完代码后,可以不用重新启动服务器就可以实时运行。
在IDEA中如何配置?
传统的Web应用,依赖Tomcat的Web容器运行。
点击当前运行的服务,再点击Edit Configurations。
点击要配置的程序,找到 On ‘Update’ action 和 On frame deactivation选择 Update classes and resources。点击OK就可以实现热部署了。
SpringBoot程序,内嵌运行环境。
DevTools
配置IDEA实现了简单的热部署,但是有很明显的缺点,只能实现方法体的修改热部署。很明显无法满足日常的需求的,所以这个时候就需要使用DevTools来替代了。
DevTools是Spring为开发者提供了一个名为spring-boot-devtools的模块,来使Spring Boot应用支持热部署,提高开发者的开发效率,无需手动重启Spring Boot应用。使用起来非常简单,只需要将下面的依赖引入项目里面就可以了。
<!-- 热部署模块 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional> <!-- 这个需要为 true 热部署才有效 -->
</dependency>
application.yml中配置devtools
运行测试
配置自动重启
注意:需要将前面的设置,全部还原。
1.打开Build project automatically
Build project automatically 非运行时编译
Complie independent modules in parallel 并行编译独立模块
2.选择Allow auto-make to start even if developed application is currently running
允许程序运行时构建