【核弹】我的第一款IDEA插件

2024-05-15 03:28
文章标签 idea 插件 第一款 核弹

本文主要是介绍【核弹】我的第一款IDEA插件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

SuperHotSwap

插件名称叫做:SuperHotSwap(超级热更新)
开发初心:旨在做出一款最便捷的IDEA热更新插件,减少用户操作步骤,提供零配置的可视化操作更新。

为什么要写这个插件:

  • 每次改一下MapperXML文件都得重启项目,动则几分钟,效率非常低。
  • 现有的MapperXML热更新方式都是引入jar包的方式,底层是通过轮询文件修改事件触发相应的更新事件,显然会影响项目性能,并且和项目强耦合
  • 我从21年的时候就学习了热更新这一块的知识,之前一直是输入,这次终于是输出。

整体架构
项目分为Agent、RPC、Client三个核心模块,功能分工明确,结构很简单。

  • Client端负责IDEA页面配置和功能扩展编写,在IDEA文件右键添加热更新菜单,点击触发文件更新。
  • Agent模块用于与Client端交互,通过Attach方法加载到项目中,实现操作项目中任何资源等强大功能。
  • RPC模块是支持Client端与Agent端远程调用的轻量级框架,Client端通过JDK反射+动态代理扫描RPC注解生成代理类,通信方式采取Socket+对象序列化的方式,Agent模块加载后触发运行RPC服务端Socket监听,通过SPI+反射的方式实现Client与Agent实时通信交互。
    在这里插入图片描述

开发环境

  • JDK1.8
  • IDEA2021.3
  • Gradle8.7

支持功能

支持功能是否支持
MybatisXML热更新
Class热更新√ (增强功能需安装DCEVM补丁)
远程项目热更新进行中)

使用流程
安装插件
打开IDEA插件市场搜索superHotswap安装
在这里插入图片描述

启动项目
安装成功后重启IDEA,启动项目后输出Banner表示安装成功
在这里插入图片描述

MapperXML热更新
在MapperXML文件下点击File Hot Swap按钮执行热更新指令,指令正常输出如下
在这里插入图片描述

Java热更新
idea文件自动保存是有延迟的,记得先手动ctrl+s保存一下
在这里插入图片描述

视频演示
https://www.bilibili.com/video/BV16z42127Vf/

最后
后续有时间可能也会推出IDEA插件开发的教程,目前项目还会继续迭代,欢迎广大朋友加入一起开源,我相信这个项目相对于CRUD项目更会让面试官眼前一亮。

最后,觉得该项目还不错,或者能对你有所帮助,不凡点个star吧~
Github地址:https://github.com/songbiaoself/SuperHotSwap
Gitee地址:https://gitee.com/song_biao/super-hot-swap
项目中用到的RPC框架地址: https://github.com/songbiaoself/easy-rpc

这篇关于【核弹】我的第一款IDEA插件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/990674

相关文章

RabbitMQ 延时队列插件安装与使用示例详解(基于 Delayed Message Plugin)

《RabbitMQ延时队列插件安装与使用示例详解(基于DelayedMessagePlugin)》本文详解RabbitMQ通过安装rabbitmq_delayed_message_exchan... 目录 一、什么是 RabbitMQ 延时队列? 二、安装前准备✅ RabbitMQ 环境要求 三、安装延时队

Mac电脑如何通过 IntelliJ IDEA 远程连接 MySQL

《Mac电脑如何通过IntelliJIDEA远程连接MySQL》本文详解Mac通过IntelliJIDEA远程连接MySQL的步骤,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友跟... 目录MAC电脑通过 IntelliJ IDEA 远程连接 mysql 的详细教程一、前缀条件确认二、打开 ID

AOP编程的基本概念与idea编辑器的配合体验过程

《AOP编程的基本概念与idea编辑器的配合体验过程》文章简要介绍了AOP基础概念,包括Before/Around通知、PointCut切入点、Advice通知体、JoinPoint连接点等,说明它们... 目录BeforeAroundAdvise — 通知PointCut — 切入点Acpect — 切面

IDEA与MyEclipse代码量统计方式

《IDEA与MyEclipse代码量统计方式》文章介绍在项目中不安装第三方工具统计代码行数的方法,分别说明MyEclipse通过正则搜索(排除空行和注释)及IDEA使用Statistic插件或调整搜索... 目录项目场景MyEclipse代码量统计IDEA代码量统计总结项目场景在项目中,有时候我们需要统计

idea Maven Springboot多模块项目打包时90%的问题及解决方案

《ideaMavenSpringboot多模块项目打包时90%的问题及解决方案》:本文主要介绍ideaMavenSpringboot多模块项目打包时90%的问题及解决方案,具有很好的参考价值,... 目录1. 前言2. 问题3. 解决办法4. jar 包冲突总结1. 前言之所以写这篇文章是因为在使用Mav

IDEA中配置Tomcat全过程

《IDEA中配置Tomcat全过程》文章介绍了在IDEA中配置Tomcat的六步流程,包括添加服务器、配置部署选项、设置应用服务器及启动,并提及Maven依赖可能因约定大于配置导致问题,需检查依赖版本... 目录第一步第二步第三步第四步第五步第六步总结第一步选择这个方框第二步选择+号,找到Tomca

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

idea的终端(Terminal)cmd的命令换成linux的命令详解

《idea的终端(Terminal)cmd的命令换成linux的命令详解》本文介绍IDEA配置Git的步骤:安装Git、修改终端设置并重启IDEA,强调顺序,作为个人经验分享,希望提供参考并支持脚本之... 目录一编程、设置前二、前置条件三、android设置四、设置后总结一、php设置前二、前置条件

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

Spring Boot Maven 插件如何构建可执行 JAR 的核心配置

《SpringBootMaven插件如何构建可执行JAR的核心配置》SpringBoot核心Maven插件,用于生成可执行JAR/WAR,内置服务器简化部署,支持热部署、多环境配置及依赖管理... 目录前言一、插件的核心功能与目标1.1 插件的定位1.2 插件的 Goals(目标)1.3 插件定位1.4 核