最新版 IDEA 2022.3.2 中配置热加载工具 DevTools
  2nQLPH4eqfxm 2023年11月01日 58 0

最新版 IDEA 2022.3.2 中配置热加载工具 DevTools

在SpringBoot开发调试中,如果我每行代码的修改都需要重启再调试,可能比较费时间;SpringBoot团队针对此问题提供了spring-boot-devtools(简称devtools)插件,用此插件提升开发调试的效率。

1、DevTools原理

spring-boot-devtools是spring为开发者提供的热加载工具包。主要原理是使用了两个ClassLoader类加载器,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会发生变化的类,称为restart ClassLoader,这样在个人代码更改的时候,原来的restart ClassLoader 被释放掉,然后重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了加快应用重启时间。

2、DevTools配置及使用

2.1 引入DevTools依赖

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-devtools</artifactId>
   <!-- optional等于true,表示该依赖是可选的,不会被依赖传递 -->
   <optional>true</optional>
</dependency>

2.2 打开IDEA进行全局配置

关闭Idea工程,返回启动页进行全局配置。(不然创建新项目都要重新配置一次挺麻烦的)

2.2.1 Build,Execution,Deployment -> Compiler,勾选 Build project automatically

image

2.2.2 Advanced Settings,勾选 Allow auto-make to start even if developed application is currently running

image

以上两步配置完成后,开发中修改类或配置文件,服务器会自动进行重启,完成类或配置文件的更新。

3、 使用小技巧

3.1 可修改application.yml文件开启或关闭devtools,默认开启

spring:
  devtools:
    restart:
      enabled: true  #设置开启热部署

3.2 排除一些不需要自动重启的资源

某些资源在更改时可能不需要触发重新启动,可以使用spring.devtools.restart.exclude属性添加到排除列表。例如:要仅排除/static,/public你可以进行如下配置:

spring:
  devtools:
    restart:
      exclude: "static/**,public/**" ##排除/static,/public

4、后记

Springboot 中的热部署相信大家用的最多的就是DevTools,没办法,官推的。同时,devtools 还是有不少缺点的,第一点:devtools 仅局限于Springboot项目,在非Springboot项目中无法使用的;第二点:devtools 功能有限制,方法内的修改可以实现热部署,但新增的方法或者修改方法参数之后热部署是不生效的。它与另外一个 IDEA 的热加载插件JRebel相比,个人觉得无论是加载速度还是使用便捷,JRebel都是完胜,JRebel唯一缺点就是收费 _

5、传送门

最新版 IDEA 2022.3.2 热部署插件 JRebel 安装注册完整教程(内附彩蛋)
百度网盘地址:https://pan.baidu.com/s/1Oa6HjzovpoR4l6aHe0V9tQ
密码:rwgg

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  2Vtxr3XfwhHq   2024年05月17日   53   0   0 Java
  Tnh5bgG19sRf   2024年05月20日   107   0   0 Java
  8s1LUHPryisj   2024年05月17日   46   0   0 Java
  aRSRdgycpgWt   2024年05月17日   47   0   0 Java
2nQLPH4eqfxm