Spring Boot 中 Developer Tools 的配置和使用

Developer Tools 是 Spring 提供的一个提高开发效率的工具。

如何使用?

需要在 Spring Boot 项目中添加相关依赖:

Maven 配置

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>
</dependencies>

Gradle 配置

dependencies {
    developmentOnly("org.springframework.boot:spring-boot-devtools")
}

自动重启

DevTools 会监控 classpath 路径中的文件,当这些文件发生变化并且发生某些触发动作时,应用将会被自动重启。

在不同的 IDE 中,这些触发动作是不同的:

  • 在 Eclipse 中,当保存文件时会触发自动重启。
  • 在 IEDA 中,则是在编译时触发(【Build】–>【Build Project】,快捷键 Ctrl + F9)。

在使用 IEDA 时,需要手动编辑时才会触发自动重启,这显然还是不太方便 。

为了避免每次都手动编译,我们可以配置更新策略:

  1. 点击主菜单中的【Run】–> 【Edit Configurations】。
  2. 在弹出的【Run/Debug Configurations】窗口中,选中需要配置的应用。
  3. Running Application Update Policies 下面进行配置:
    1. On ‘Update’ action – 配置当”更新“发生时,采取的动作。(备注:我没搞明白这个更新时机是啥,当只配置这一项时,好像不起作用,IDEA版本:2020.4)。
    2. On frame deactivation – 配置当 IDEA 窗口”失活“(比如切换到浏览器等其他窗口),采取的动作。这一项配置是有效的,我将这一项配置为 ”Update classes and resources“ ,当我改完代码切换到浏览器时,应用会自动重启。
      在这里插入图片描述

作用和原理

DevTools 的主要作用是减少重启的时间,它并不是真正的热加载技术(比如:JRebel)。

DevTools 的基本原理是,将代码分为两部分:不变的部分(比如第三方JAR包)和变化部分。不变的部分(比如第三方JAR包)由 base blassloader 加载,变化的部分由 restart classloader 加载。这样每次重启时,只加载变化的部分,这样就减少了启动的时间。

相关资料

8. Developer Tools
Application update policies

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值