【Springboot的热部署】

前言

一般我们的项目都会引各种依赖和配置项,项目的启动往往比较耗时。可能 debug 的过程中发现需要修改的地方,改了之后如果每次都重启服务会耗费大量时间,减少摸鱼时间。热部署就是为了解决每次服务都要重启的问题,提升我们工作效率。

常用的热部署方式有3种:1)SpringBoot Configuration方式;2)spring-boot-devtool;3)JRebel。一起来看下怎么用。

SpringBoot Configuraion

这是 Idea 给我们提供的热部署方式。

Idea 官方介绍

我们在工具栏上点开项目,选择 Edit Configuration,弹出下面的界面: 在这里插入图片描述
可以看到在 Running Application Update Policies 下有两个选项:

  • On ‘Update’ action:当你选择这个选项时,自动编译和更新操作只有在你显式执行 “Update” 操作时才会触发。显式执行"Update"操作就是通过手动点击【Build Project】时触发。这种方式可以使你完全控制编译和更新的时机,避免频繁的自动更新。(快捷键:Ctrl + F10
  • On frame deactivation:当你选择这个时,每当 IntelliJ IDEA 的窗口失去焦点(即你切换到其他应用程序)时,IDE 会自动编译并更新运行中的应用程序。它适合那些需要频繁编译和更新的开发场景。

当两个都选了时,会使用第二种策略,即失去焦点时自动更新。一般大型项目建议使用第一个选项,否则频繁地自动更新会耗费较多资源。

当我们选择 On ‘Update’ action 时,有几种方式可供选择(不同版本可能展示的有差异),不同选项的作用见 Idea 的备注:

在这里插入图片描述
一般选择 Update classes and resources,它会编译所有修改的类文件和资源文件。

spring-dev-tools

这个工具是依赖 Liveload 服务器实现的,使用了两个类加载器ClassLoader,一个ClassLoader加载不会发生更改的类(第三方jar包),另一个ClassLoader(restart ClassLoader)加载会更改的类(自定义的类)。

使用方式很简单,pom文件中引入依赖即可:

xml 代码解读<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional> <!-- 可以防止将devtools依赖传递到其他模块中 -->
</dependency>

然后也是手动点击【Build Project】即可触发热部署。当然也可以配置 Idea 的自动更新。

JRebel

JRebel是一个 JVM 插件,在 Idea 中可以直接安装,下面是官网的介绍:

JRebel is a JVM plugin that streamlines Java application development by skipping the time-consuming build and redeploy steps. With JRebel, developers can view code changes in real time, preserve application state, and increase coding efficiency.

  1. 插件安装 直接搜 JRebel and XRebel 安装即可。
  2. 激活。这个网上搜下。
  3. 设置增量编译: 在这里插入图片描述
    double shift,输入 register: image.png
  4. 使用JRebel启动项目。项目
  • 12
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值