1.arthas的下载
https://arthas.gitee.io/download.html
2.arthas的运行
java -jar arthas-boot.jar
运行结果如下
3.接入项目,在运行arthas之前需要运行项目代码选择接入的运行项目的序号
4.进行反编译
jad com.tt.learn.controller.TestController
可以看到对应的反编译正在运行的源码
5.生成class文件
A.用mc加上类加载的hash值进行反编译
B.用idea进行反编译然后取traget里面的class文件
6.替换class文件
retransform(3.5以后才有的) 或者 redefine 对应class类 实现了热部署
经过实践运行前
热部署的打印111
用postman调用热部署前和热部署后可以看到代码生效了,重启之后代码又失效了,因为java没变只是替换了class文件;在Linux服务器上也可以有类似的操作。