热部署在项目中的应用

前言

在实际开发过程中,每次修改代码就得将项目重启,重新部署,对于一些大型应用来说,重启时间需要花费大量的时间成本。对于一个后端开发者来说,重启过程确实很难受。目前的java虚拟机只能实现方法体的热部署,对于整个类的结构修改,仍然需要重启虚拟机,对类重新加载才能完成更新操作。

热部署原理

说到热部署不得不提类的加载过程:加载、验证、准备、解析、初始化。

image-20221012160320390

类的加载过程遵循双亲委派机制,就是在加载一个class的时候,会始终尝试先委派给父类加载器。我们只需要自定义类加载器,监听或通过其他途径监听文件的变动,使用自定义的类加载器重新进行加载即可。

idea内置热部署

step1:在IDEA中添加远程debug配置,host填服务器的ip,自定义一个端口号,会自动生成“Command line arguments remote JVM”参数。

image-20221012140046230

setp2:启动java进程的时候添加VM参数,如果是docker环境还需要指定端口映射。

java -jar -agentlib:jdwp=transport=dt_socket,server&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值