SpringBoot热部署详解(4种方式与使用示例)

SpringBoot热部署详解(4种方式与使用示例)-mikechen

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。

SpringBoot热部署详解(4种方式与使用示例)-mikechen

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”。

如下图所示:

SpringBoot热部署详解(4种方式与使用示例)-mikechen

4.启动应用程序

此时如果修改了代码,应用程序会自动重新加载,如果你想要更快的热部署体验的话可以使用JRebel。

以上就是SpringBoot热部署详解,更多SpringBoot内容请查看:SpringBoot框架教程(详细图文详解)

作者简介

陈睿|mikechen,10年+大厂架构经验,BAT资深面试官,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

👇阅读更多mikechen架构文章👇

阿里架构 |双11秒杀 |分布式架构 |负载均衡 |单点登录 |微服务 |云原生 |高并发 |架构师

以上

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

评论交流
    说说你的看法