背景

SpringBoot内嵌tomcat使得我们开发时候启动项目更加便捷,不在是explose方式部署在外部tomcat容器中,导致修改代码不能够重新加载到内存中而需要重启项目,每改一次需要重启一次;随着SpringBoot项目逐渐增大,启动项目的时间也越来越长,当碰到紧急修复bug需要修复的时候,本身就紧张又很容易犯低级错误,一不小心就重启个好几回,这种漫长等待项目启动完成的过程是非常痛苦的。

解决神器-热部署

JRebel插件

优点:安装简单插件丰富

缺点:耗资源、收费(可注册账户激活或破解激活)不开源

有一段时间尝试了下JRebel,后面发现一个问题,在IDEA中JRebel插件会开启Build project automatically,然后手动取消勾选后,隔一会还是会被勾选上,因为这个勾选起来后会另外启动一个jvm占用内存和资源,导致电脑经常卡死,所以后面就卸载了。如下图所示:

HotswapAgent+DCEVM

优点:开源、资源消耗低

缺点:支持的插件还在持续完善中

HotswapAgent+DCEVM实现热部署

下载补丁DCEVM补丁安装文件

下载地址:https://github.com/dcevm/dcevm/releases

记得下载对应版本号的

运行命令
java -jar DCEVM-8u172-installer.jar 出现如下窗口

运行"Install DCEVM as altjvm"按钮安装

下载hotswap-agent.jar代理包

下载地址:https://github.com/HotswapProjects/HotswapAgent/releases

修改项目启动配置

添加如下参数

-XXaltjvm=dcevm
-javaagent:C:\Users\MrZeng\Desktop\hotswap-agent-1.3.1-SNAPSHOT.jar=autoHotswap=true

注意:=autoHotswap=true一定加上,楼主未加上时spring Controller的修改无效果

IDEA启动类添加启动参数VM配置如下:

添加完参数后记得保存下配置,使得配置生效。

启动项目

发现已经打印了HotSwap相关日志说明成功了

定义一个简单的测试方法
    @RequestMapping("testHotSwap")public Object testHotSwap(){return "hellow version 01";}
访问页面结果如图

修改代码:
    @RequestMapping("testHotSwap")public Object testHotSwap(){return "hellow version 02";}
修改代码测试

修改完代码,ctrl+shift+F9只编译当前类(快捷键不一,关闭自动编译性能渣的机子体验是明显的不一样),编译完后发现控制台打印了HotSwap日志

Controller重新加载了!

刷新页面

更改的内容也有了!

SpringBoot项目通过HotswapAgent实现热部署(JDK1.8)---亲测有效相关推荐

  1. SpringBoot项目优化和Jvm调优(楼主亲测,真实有效)

    今日推荐Spring新版本抛弃JVM,可独立部署,网友:要自立门户???国内大神成功给手机装上了 Win11,代码已开源!Fluent Mybatis 牛逼!Nginx 常用配置清单这玩意比Threa ...

  2. Maven多模块项目中应用maven-tomcat-plugin热部署

    Maven多模块项目中使用maven-tomcat-plugin热部署 比如有一个父模块xfl(类型为pom的maven项目),其中的pom.xml为: <modules> <mod ...

  3. 升级node,老的项目启动不了的解决方法(亲测有效)

    升级node,老的项目启动不了的解决方法(亲测有效) 参考文章: (1)升级node,老的项目启动不了的解决方法(亲测有效) (2)https://www.cnblogs.com/chenzhengy ...

  4. 【Java笔记+踩坑】SpringBoot基础3——开发。热部署+配置高级+整合NoSQL/缓存/任务/邮件/监控

      导航: [黑马Java笔记+踩坑汇总]JavaSE+JavaWeb+SSM+SpringBoot+瑞吉外卖+SpringCloud/SpringCloudAlibaba+黑马旅游+谷粒商城 目录 ...

  5. 加速 SpringBoot 应用开发,官方热部署神器真带劲!

    平时使用SpringBoot开发应用时,修改代码后需要重新启动才能生效.如果你的应用足够大的话,启动可能需要好几分钟.有没有什么办法可以加速启动过程,让我们开发应用代码更高效呢?今天给大家推荐一款Sp ...

  6. SpringBoot 2.1.5(38)---热部署(devtools)配置操作

    1 SpringBoot 热部署(devtools)简介 SpringBoot 提供了热部署的功能,那啥是热部署类?SpringBoot官方是这样说的:只要类路径上的文件发生更改,就会自动重新启动应用 ...

  7. 加速 SpringBoot 应用开发,官方热部署神器真带劲

    平时使用SpringBoot开发应用时,修改代码后需要重新启动才能生效.如果你的应用足够大的话,启动可能需要好几分钟.有没有什么办法可以加速启动过程,让我们开发应用代码更高效呢?今天给大家推荐一款Sp ...

  8. SpringBoot官方开发工具,热部署和远程调试真带劲

    平时使用SpringBoot开发应用时,修改代码后需要重新启动才能生效.如果你的应用足够大的话,启动可能需要好几分钟.有没有什么办法可以加速启动过程,让我们开发应用代码更高效呢?今天给大家推荐一款Sp ...

  9. springboot在intellij中的热部署(Hot swapping)配置

    File->Other Settings(针对新工程设置,免得每次新工程都要这么设置一遍太麻烦了) File->Settings(让当前工程生效) ①输入build搜索,勾选下面的Buil ...

最新文章

  1. R语言pretty函数生成等间距的数值向量实战
  2. 基于纯 CSS3 技术实现美观的标签云效果
  3. 使用YII2 构建一个定时任务
  4. 438. Find All Anagrams in a String
  5. 洛谷 P1206 [USACO1.2]回文平方数 Palindromic Squares
  6. VTK:PolyData之DistancePolyDataFilter
  7. 测试 System.SysUtils.TStringHelper
  8. 使用Red Hat Enterprise Linux的实时内核
  9. 反射工厂在数据访问层的应用
  10. Bailian2888 字符串中的数字【字符串】
  11. Linux中解压解压rar文件
  12. CDH6离线安装教程
  13. python下opencv安装
  14. 《奇葩说》救猫还是救画,我做了认真的分析
  15. 阿里巴巴数据库架构演进分析
  16. golang vendor介绍
  17. wo de wen jian
  18. 计算机基础知识——操作系统概述
  19. 喷砂目数与粗糙度对照表 啦啦啦啦
  20. 学习笔记01-安全术语

热门文章

  1. 吉林2021高考成绩排名查询,2021吉林市地区高考成绩排名查询,吉林市高考各高中成绩喜报榜单...
  2. 关于计算两日期之间经过多少天的超巧妙算法(转载)
  3. 【业务整理】和家固话、智能组网、融合用户/套餐、5G权益包、中国移动经营分析系统(经分)
  4. cad图纸怎么打印?办公常备软件
  5. cpython_cpython使用
  6. 手把手教你用Scrapy 爬取斗鱼妹子头像 下载图片
  7. 净利润高速增长,新零售时代沃尔玛如何继续引领潮流?
  8. 论文超详细精读|六千字:ST-GCN
  9. Python数据(个人所需)
  10. 腾讯与反腾讯联盟两大垄断集团之间的狗咬狗的搞笑互联网大战