推荐一款好用的Idea热部署插件

这篇具有很好参考价值的文章主要介绍了推荐一款好用的Idea热部署插件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

目录

1.什么是热部署

1.1.热启动与热部署的区别

2.为什么需要热部署

3.热部署产品

3.1.JRebel

3.2.IDEA HotSwap

3.3.HotSwapAgent

3.4.Spring Boot DevTools

3.5.FastHotSwapper

4.FastHotSwapper安装使用



1.什么是热部署

热部署(Hot Deployment)是指在应用程序运行过程中,对部分代码或资源进行修改后,无需停止整个应用程序就可以立即生效的一种技术。热部署通常用于开发和测试环境,可以节省时间和提高效率,让开发人员可以更快地验证代码修改的效果。在生产环境中,热部署也可以用于修复一些轻微的问题或更新应用程序的部分功能,避免整个应用程序停机时间过长导致的影响。

1.1.热启动与热部署的区别

热启动是指在已经运行的项目上,再次启动(比如说,做了修改代码),少加载了一些东西,从而启动的比快,节省开发时间。
热部署会启动自动加载修改代码的部分。
而idea 本身不支持热部署,需要在idea中安装插件

2.为什么需要热部署

我们研发同学在日常开发调试阶段经常会遇到下面一些情况:

  1. spring bean中的属性遗漏@Resource或者@Autowired注解
  2. mybatis sql配置文件中的sql编写错误
  3. 实体类中增加(修改或者删除)属性导致Fastjson、Jackson无法正常序列化和反序列化
  4. 方法签名需要增加一个参数或者需要增加一个CheckedException的申明
  5. 类中增加静态Logger属性以增加日志输出

上面所列举的一些场景,我们研发同学必须通过重启服务(如tomcat)才能够使修改的代码生效。对于一些小型的系统重启一次可能只需要花费1分钟左右的时间,而对于大型系统重启一次往往需要5分钟左右。如果系统中大量使用到了dubbo、mq等技术,由于启动过程中需要建立大量的连接,重启所花费的时间可能会更长。据统计,研发同学每天大概需要重启服务10-20次。频繁的重启服务,严重影响了研发同学开发、调试的节奏,影响整体的工作效率。

热部署技术正是为了解决这一问题,热部署能够使研发人员对代码的绝大部分修改都能够立即生效在不重启应用程序的情况下快速测试和调试代码,帮助研发减少频繁的重启服务次数,节省碎片化的时间。

避免应用程序因为更新而需要停机维护,从而提高了应用程序的可用性和稳定性。

3.热部署产品

目前市面上成熟的热部署产品不是特别多,主要有JRebel、IDEA HotSwap、HotSwapAgent、Spring Boot DevTools,都可以实现代码的热部署。

3.1.JRebel

一款功能强大的热部署收费产品,以IDEA作为用户操作入口,生态较为庞大,基本上覆盖了Java生态下主流技术框架的热部署。其主要的缺点就是国产框架(fastjson、mybatis-plus等)基本上都不支持,并且是一款收费产品,需要破解。

3.2.IDEA HotSwap

IDEA自带的热部署,能力相对较弱,仅支持方法体的变更。诸如增加属性、增加方法、修改类的继承关系等变更类结构的操作都是被禁止的,并且spring、mybatis等Java主流框架均不支持。支持的场景非常有限,功能较为单一,难以满足研发同学的日常开发。

3.3.HotSwapAgent

一款免费开源的热部署Agent(github.com/HotswapProj… 国外团队开发的,同样也是不支持国产框架,但是由于其是完全免费开源的,我们可以基于它进行二次开发来支持国产框架的热部署。也正是因为是免费开源的,通过深入研究其源代码,发现其很多热部署场景支持的都存在一些问题,包括mybatis代理接口,spring框架整体支持上都存在一些问题。

标准的JVM在运行时只允许修改类的方法体,不允许修改类结构。HotSwapAgent团队为了解决这一来自JVM的限制研发了DCEVM补丁(github.com/dcevm/dcevm… 该补丁允许研发同学在运行期对类进行任何修改。也正是由于这一补丁的出现,使得真正意义上的热部署得以被实现(JRebel本质上也是使用类似的技术手段)。

3.4.Spring Boot DevTools

Spring Boot DevTools只能应用在Spring Boot项目中,并且它不是增量热部署,而是通过Classloader迭代的方式重启项目,对大项目而言,性能上是无法接受的。准确来说Spring Boot DevTools并非一个严格意义上的热部署产品。

3.5.FastHotSwapper

目前市面上的热部署产品大部分都是国外团队研发的,缺少对国产技术框架的支持。FastHotSwapper正是为了弥补这一空缺,为广大研发同学提供一款功能强大、简单易用、支持国产框架、免费的热部署产品。

FastHotSwapper旨在提高开发效率。简而言之:修改可以立即生效,而无需在整个编码过程中重新启动应用程序。 具体来说,可以在应用程序运行时升级软件,而无需重新启动

FastHotSwapper是一款IDEA热部署插件。其核心(Agent部分)是基于HotSwapAgent做了二次开发,对spring、mybatis、tomcat、cglib等主流技术框架进行了深度的优化,同时对一些主流的国产框架进行了热部署支持,例如apollo、mybatis-plus、tk-mybatis、Fastjson等。并以IDEA作为用户的操作入口,提升热部署整体的易用性。

4.FastHotSwapper安装使用

详情可以参考: plugins.jetbrains.com/plugin/2064…

1)热部署插件安装

推荐一款好用的Idea热部署插件

2)安装dcevm

1、从下面列表下载jdk8对应版本的DCEVM补丁。补丁要jdk的版本要一一对应,否则会导致jdk崩溃。

FastHotSwapper - IntelliJ IDEs Plugin | Marketplace

2、执行安装命令 mac操作系统或者linux操作系统直接打开terminal运行下面命令

cd dcevm 所在目录
sudo java -jar dcevm-light-java8u192.jar

windows操作系统,首先以管理员身份打开cmd,然后执行下面命令,尽可能不在C盘执行命令

cd dcevm所在目录

java -jar dcevm-light-java8u192.jar

命令执行完成之后便可以弹出下图所示的可视化操作界面。

需要在jdk和jre上同时安装补丁,点击右下角按钮:Install DCEVM as altjvm,然后关闭界面即可。

推荐一款好用的Idea热部署插件

3)验证

运行命令

 java -XXaltjvm=dcevm -version 

出现 "Dynamic Code Evolution"字符串则表示安装成功

推荐一款好用的Idea热部署插件

DCEVM要求应用的垃圾收集器必须为SerialGC(java8默认收集器),安装该补丁后会导致非SerialGC的应用无法启动

4)关闭IDEA的热部署能力

Build,Execution,Deployment > Debug > HotSwap Reload classes after compilation选择Never。

IDEA自带的热部署只能够支持方法体的变更,无法做到spring、mybatis等框架的动态重载,所以这里禁用IDEA自带的热部署功能。

5)热部署启动

debug启动目标应用程序,目前只支持以debug启动的应用程序。

web容器目前只支持tomcat和jetty,以其他容器部署的应用则不支持热部署。

如出现以下关键信息,代表agent已生效,服务启动成功后,即可体验热部署了

推荐一款好用的Idea热部署插件

6)热部署操作

当完成编码之后,可以在运行中选项卡中打开热部署面板,校验变更文件列表(如果缺少文件,可以打开该文件使用"ctrl+s"保存一下),然后点击OK按钮便可开始热部署。

同样可以使用默认的快捷键(ctrl+alt+9)来一键开始热部署

推荐一款好用的Idea热部署插件

7)热部署完成

推荐一款好用的Idea热部署插件

小结:总的来说非常好用,支持XML文件中的sql热部署,但是目前发现不支持2023.3的idea 中的新版ui,如果不使用新版UI应没有问题

参考:

https://juejin.cn/post/7178798474702356540文章来源地址https://www.toymoban.com/news/detail-459417.html

到了这里,关于推荐一款好用的Idea热部署插件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 推荐一款idea神级代码插件【Bito-ChatGPT】而且免费!- 第9篇

    历史文章( 文章 累计460+) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 文心一言 PK ChatGPT,二者究竟谁更胜

    2024年02月07日
    浏览(58)
  • Spring和IDEA都不推荐用的@Autowired注解,为什么还有那么多人用?

    @Autowired的默认装配 我们都知道在spring中@Autowired注解,是用来自动装配对象的。通常,我们在项目中是这样用的: 没错,这样是能够装配成功的,因为默认情况下spring是按照类型装配的,也就是我们所说的byType方式。 此外,@Autowired注解的required参数默认是true,表示开启自动

    2023年04月18日
    浏览(60)
  • 【好物推荐】一款帮我快速达成单元测试的覆盖率指标的IDEA插件 —— TestMe

    TestMe 是一个可以帮助您快速达成单元测试覆盖率指标的 IDEA 插件。 它可以帮助您自动生成测试用例,从而确保您的代码覆盖率达到所需的覆盖率。 请注意,TestMe 插件只是一个辅助工具,它可以帮助您自动生成测试用例,但单元测试的质量和覆盖率的可靠性仍然取决于您的代

    2024年02月13日
    浏览(45)
  • idea热部署插件JRebel激活(强烈推荐,试试就离不开了)

    JRebel可以实现在idea中热部署项目,修改后不用重启项目,让开发更丝滑。 JRebel需要激活才可以正常使用。 博主最近在找工作,Java前后端全站工程师一枚,有合适的请帮博主推荐一下 有项目的也可以联系我,感谢感谢 博主在北京 2023-07-04 发 V:y393016244 FileSettingsPlugins 搜索

    2024年02月13日
    浏览(45)
  • 推荐一款免费好用的远程桌面:Getscreen

    因为平时有多台设备要用,所以远程桌面是我经常要使用的工具。 最近,正好看到一款不错的远程桌面软件,马上拿出来推荐给大家,如果有需要的可以看看。 今天要推荐的远程桌面软件就是这款叫 Getscreen 的软件,推荐理由挺简单,就3点: 简单易用:只需要两步就能轻松

    2024年02月11日
    浏览(55)
  • 除了微软,推荐一款免费好用的office软件

    日常工作和学习中,大家比较常见的office软件就是Microsoft Office,因为它的功能比较强大,被很多人所熟知,不过其费用却让很多人望而却步。今天小编就给大家推荐一款免费好用的office软件。 这款软件不仅能够满足日常的office文档编辑需求,而且还可以进行各种文档格式间

    2024年02月12日
    浏览(55)
  • 推荐一款好用的Macos应用Radial Menu

           之前在Windows上用过一款圆盘菜单工具Quicker, 感觉非常方便, 换成Macos后,一直没有找到类似应用。 最近终于发现,一款好用的快捷键收集,触发工具CirMenu. 其核心功能是可以根据当前程序的上下文,弹出一个圆盘菜单。 执行圆盘中的动作。 目前菜单动作还仅支持快

    2024年02月15日
    浏览(31)
  • 强烈推荐一款好用的SSH连接工具,无废话版

    工欲善其事必先利其器,这句话放在咱们开发人员身上,真的是非常有道理的。 作为一名后端或者是运维,经常看到他们用XShell + xftp配合。说实话,真没必要,有好用的一站式管理工具,为什么要秀coding呢? 我用了三年的工具,真心觉得好用,可能大伙也听过,就是FinalS

    2024年02月11日
    浏览(43)
  • 推荐一款好用的开源视频播放器(免费无广告)

    mpv是一个自由开源的媒体播放器,它支持多种音频和视频格式,并且具有高度可定制性。mpv的设计理念是简洁、高效和功能强大。 软件特点: 1. 开源、跨平台。可以在WindowsLinuxMacOSBSD等系统上使用,完全免费无广告。Windows版解压即用,绿色便携。 2. 兼容性好。支持绝大多

    2024年02月11日
    浏览(51)
  • 5款非常好用的设计工具,推荐第一款在线设计工具

    特别是在当今的UI设计领域,如果没有合适的UI设计工具,那么即使你的创作能力很强,工作也会有限,但许多软件需要会员使用,这不适合新设计师,所以有在线UI设计工具吗?关于这个问题,今天我将介绍一些可以免费使用的UI设计工具。 1. 即时设计 即时设计是一款免费的

    2024年02月01日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包