4.8 JavaAgent案例演示
一、启动方式
静态方式:
启动时通过javaagent附加命令挂挂载
入口方法:premain()
字节码操作限制:
符合字节码规范
对字节码做任意修改
适应场景:需要对字节码进行大量修改(APM)
SkyWalking目前只支持这种方式
动态方式:
JVM运行时使用Attach API挂在Agent
入口方法:agentmain()
字节码操作限制:
不能增加父类
不能增加接口
不能增减字段
...
适应场景:系统诊断(阿里Arthsa)
字节码编辑:
byte-buddy
ASM
Javaassist
二、Javaagent简单案例
通过byte-buddy实现
项目依赖:

2023-05-26 19-48-41 入口方法:

2023-05-26 19-49-42 指定拦截方法

2023-05-26 19-50-43 打包后,通过附加jvm启动脚本执行
Last updated