SpringBoot项目通过HotswapAgent实现热部署(JDK1.8)---亲测有效
背景
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)---亲测有效相关推荐
- SpringBoot项目优化和Jvm调优(楼主亲测,真实有效)
今日推荐Spring新版本抛弃JVM,可独立部署,网友:要自立门户???国内大神成功给手机装上了 Win11,代码已开源!Fluent Mybatis 牛逼!Nginx 常用配置清单这玩意比Threa ...
- Maven多模块项目中应用maven-tomcat-plugin热部署
Maven多模块项目中使用maven-tomcat-plugin热部署 比如有一个父模块xfl(类型为pom的maven项目),其中的pom.xml为: <modules> <mod ...
- 升级node,老的项目启动不了的解决方法(亲测有效)
升级node,老的项目启动不了的解决方法(亲测有效) 参考文章: (1)升级node,老的项目启动不了的解决方法(亲测有效) (2)https://www.cnblogs.com/chenzhengy ...
- 【Java笔记+踩坑】SpringBoot基础3——开发。热部署+配置高级+整合NoSQL/缓存/任务/邮件/监控
导航: [黑马Java笔记+踩坑汇总]JavaSE+JavaWeb+SSM+SpringBoot+瑞吉外卖+SpringCloud/SpringCloudAlibaba+黑马旅游+谷粒商城 目录 ...
- 加速 SpringBoot 应用开发,官方热部署神器真带劲!
平时使用SpringBoot开发应用时,修改代码后需要重新启动才能生效.如果你的应用足够大的话,启动可能需要好几分钟.有没有什么办法可以加速启动过程,让我们开发应用代码更高效呢?今天给大家推荐一款Sp ...
- SpringBoot 2.1.5(38)---热部署(devtools)配置操作
1 SpringBoot 热部署(devtools)简介 SpringBoot 提供了热部署的功能,那啥是热部署类?SpringBoot官方是这样说的:只要类路径上的文件发生更改,就会自动重新启动应用 ...
- 加速 SpringBoot 应用开发,官方热部署神器真带劲
平时使用SpringBoot开发应用时,修改代码后需要重新启动才能生效.如果你的应用足够大的话,启动可能需要好几分钟.有没有什么办法可以加速启动过程,让我们开发应用代码更高效呢?今天给大家推荐一款Sp ...
- SpringBoot官方开发工具,热部署和远程调试真带劲
平时使用SpringBoot开发应用时,修改代码后需要重新启动才能生效.如果你的应用足够大的话,启动可能需要好几分钟.有没有什么办法可以加速启动过程,让我们开发应用代码更高效呢?今天给大家推荐一款Sp ...
- springboot在intellij中的热部署(Hot swapping)配置
File->Other Settings(针对新工程设置,免得每次新工程都要这么设置一遍太麻烦了) File->Settings(让当前工程生效) ①输入build搜索,勾选下面的Buil ...
最新文章
- R语言pretty函数生成等间距的数值向量实战
- 基于纯 CSS3 技术实现美观的标签云效果
- 使用YII2 构建一个定时任务
- 438. Find All Anagrams in a String
- 洛谷 P1206 [USACO1.2]回文平方数 Palindromic Squares
- VTK:PolyData之DistancePolyDataFilter
- 测试 System.SysUtils.TStringHelper
- 使用Red Hat Enterprise Linux的实时内核
- 反射工厂在数据访问层的应用
- Bailian2888 字符串中的数字【字符串】
- Linux中解压解压rar文件
- CDH6离线安装教程
- python下opencv安装
- 《奇葩说》救猫还是救画,我做了认真的分析
- 阿里巴巴数据库架构演进分析
- golang vendor介绍
- wo de wen jian
- 计算机基础知识——操作系统概述
- 喷砂目数与粗糙度对照表 啦啦啦啦
- 学习笔记01-安全术语
热门文章
- 吉林2021高考成绩排名查询,2021吉林市地区高考成绩排名查询,吉林市高考各高中成绩喜报榜单...
- 关于计算两日期之间经过多少天的超巧妙算法(转载)
- 【业务整理】和家固话、智能组网、融合用户/套餐、5G权益包、中国移动经营分析系统(经分)
- cad图纸怎么打印?办公常备软件
- cpython_cpython使用
- 手把手教你用Scrapy 爬取斗鱼妹子头像 下载图片
- 净利润高速增长,新零售时代沃尔玛如何继续引领潮流?
- 论文超详细精读|六千字:ST-GCN
- Python数据(个人所需)
- 腾讯与反腾讯联盟两大垄断集团之间的狗咬狗的搞笑互联网大战