SpringBoot热部署可以显著的提高我们的开发效率,下面就给大家详解SpringBoot热部署方式与使用@mikechen
什么是热部署?
热部署是指在应用程序运行的情况下,对应用程序的代码或配置文件进行修改,而无需停止应用程序或重启服务器。
热部署可以使新的代码或配置文件可以立即生效,应用程序也能继续正常运行,这样可以显著的提高工作效率。
SpringBoot热部署有哪些?
Spring Boot 实现热部署的常见方式包括:
1.Spring Boot DevTools
Spring Boot 官方提供的一个工具集,其中包含了很多实用工具,包括热部署功能。
在 Maven 添加 spring-boot-devtools 依赖后,在修改代码后,只需重新编译,应用程序会自动重新加载。
2.Spring Loaded
Spring Loaded 是一个基于 Java Agent 技术的热部署框架。
在 Spring Boot 中使用 Spring Loaded,只需在 pom.xml 中添加 springloaded 依赖,并配置 JVM 参数即可。
3.JRebel
JRebel 是一款非常流行的热部署工具,它支持多种框架,包括 Spring Boot。
JRebel 的使用非常简单,只需在 pom.xml 文件中添加 JRebel 依赖,然后在 IDE 中启用 JRebel 插件即可,在修改代码后,应用程序会自动重新加载。
4.DCEVM
DCEVM 是一个增强版的 OpenJDK,它支持更好的热部署功能。
在 Spring Boot 中使用 DCEVM,只需下载 DCEVM 并安装,然后将其与应用程序一起运行即可,在修改代码后,应用程序会自动重新加载。
SpringBoot热部署使用示例
推荐使用SpringBoot Devtools来实现热部署,下面我就以SpringBoot Devtools为例,详解具体使用。
1.添加spring-boot-devtools依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> </dependency>
2.添加配置
在 application.properties 添加以下配置:
spring.devtools.restart.enabled=true spring.devtools.restart.additional-paths=src/main/java spring.devtools.restart.exclude=WEB-INF/**
配置项说明:
- spring.devtools.restart.enabled=true 表示启用热部署;
- spring.devtools.restart.additional-paths 指定了需要监视的文件路径,这里是 src/main/java;
- spring.devtools.restart.exclude 指定了需要排除的文件路径,这里是 WEB-INF/**
3.开启IDEA的自动编译
在 IDEA 中,进入 “Settings” -> “Build, Execution, Deployment” -> “Compiler”,勾选 “Build project automatically”。
如下图所示:
4.启动应用程序
此时如果修改了代码,应用程序会自动重新加载,如果你想要更快的热部署体验的话可以使用JRebel。
以上就是SpringBoot热部署详解,更多SpringBoot内容请查看:SpringBoot框架教程(详细图文详解)
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》