Hotswap Agent+Dcevm 热部署方案

Hotswap Agent+Dcevm 热部署方案(JDK8和JDK11)

hotswap下载地址:

https://github.com/HotswapProjects/HotswapAgent

Dcevm

https://github.com/dcevm/dcevm

根据官网的的描述,hotswap能实现这些效果在这里插入图片描述

看不懂没关系,用软件翻译可以看到如下信息
在这里插入图片描述

1.jdk8的方案

按照Dcevm的教程,可以配合idea的插件,即可开箱使用,

idea的插件主要搜

在这里插入图片描述

安装完成后,打开idea设置
在这里插入图片描述

将Enable hotSwapAgent in all configurations选项勾上。

从截图中可以看到需要安装DCEVM的jdk,这里可以转到Dcevm的github地址,选择对应的jdk8版本进行下载

在这里插入图片描述

在这里插入图片描述

下载完成后

# 以 jar 包方式运行安装包
java -jar "E:\DCEVM-8u181-installer.jar"

打开后能看到下面的页面

在这里插入图片描述

列表是你目前系统中有的jdk,选择你的开发jdk8,进行部分文件替换

在这里插入图片描述

之后到项目设置中

在这里插入图片描述

检查是否为对应的jdk8;然后打开系统配置,在 Settings->Build,Execution,Deployment->Debugger->Hotswap选项卡中,是否在编译完成后重新加载类,设置为 Always。

在这里插入图片描述

配置结束后启动项目

在这里插入图片描述

就可以愉快的进行热部署的开发了

2.jdk11

jdk11比较特殊,根据DCEVM的指引,

在这里插入图片描述

需要去到以下地址去下载对应的jdk,以目前我看到的最新版本为例,

在这里插入图片描述

下载后看到,已经包含了hotswap的jar包,所以jdk11的配置方式也有不同,目前无法使用idea的插件

在这里插入图片描述

其中进入到jar包发现这个版本也是1.4.1,根据官方的指引启动会报Hibernate插件错误,并且,若类需要注入新的service类,或者其他已经在容器中存在的bean,会报空,无法获取;后发现目前hotswap目前有1.4.2的快照版本,已经初步解决这个问题,故而可以看到我将原先的jar包更名为bak,将下载后的1.4.2版本变更为原来的jar包名字

1.4.2下载页面如下

在这里插入图片描述

在这里插入图片描述

下载替换后,检查项目启动的jdk配置
在这里插入图片描述

在这里插入图片描述

若配置不是下载的openjkd11,要进行添加配置
在这里插入图片描述


根据官网的提示,要启用hotswap,需要在jvm参数上添加如下几个参数

在这里插入图片描述

其中fatjar模式是比较齐全的,当然启动速度就会比core模式慢一些,相应的core只能进行方法的新增,方法体的修改,等简单的热部署,无法使用hotswap的插件,例如依赖bean的热部署等;

-XX:HotswapAgent=fatjar
-XX:HotswapAgent=core
-XX:HotswapAgent=external 

建议可以搭配jvm的其他参数,加快启动,当然,== 在生产环境, 我们不要这样做==. 因为, 这会降低应用的安全性及长期的运行性能.加快启动速度的JVM参数如下

#禁用字节码验证. 这样类加载器, 不会校验字节码的危险性和其他禁止的行为.
-noverify 或 -Xverify:none 
#限制HotSpot在编译时和运行时的优化
-XX:TieredStopAtLevel=1

配置图如下

![在这里插入图片描述](https://img-blog.csdnimg.cn/cad5962ba3d240ac9fe1ee4d3808549c.png#pic_center在这里插入图片描述

接下来就可以愉快的进行热部署的高效率开发了,每次编写完,直接调用idea的编译功能,例如我从eclipse转到idea,习惯了原先的触发模式,idea快捷键方案也是调整为对应的方案ctrl+f9,编译结束调用代码,就能看到效果了!

  • 23
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值