两种方式挂载JavaAgent
1. 启动挂载 :
所有的类在加载时都会执行transform
,我们在此方法中增强目标类。
2. 动态挂载 :
-
动态挂载之后,类加载时都会执行
transform
,我们在此方法中增强目标类。 -
动态挂载前 已经加载的类,都未经历增强的处理。
可通过调用retransformClasses
方法,让已加载的类重新加载,
重新加载时也会执行transform
,我们在此方法中增强目标类。
这两个关键方法的完整信息如下:
java.lang.instrument.ClassFileTransformer#transform
java.lang.instrument.Instrumentation#retransformClasses
网友评论