Java Agent入门
介绍 在JDK1.5以后,我们可以使用agent技术构建一个独立于应用程序的代理程序(即为Agent),用来协助监测、运行甚至替换其他JVM上的程序。使用它可以实现虚拟机级别的AOP功能。Agent分为两种,一种是在主程序之前运行的Agent,一种是在主程序之后运行的Agent(前者的升级版,1.6以后提供)。 使用 主程序运行之前的代理程序 创建代理类 public class MyPreMainAgent { //方法名和参数都是固定的 premain表示在主程序运行之前运行 public static void premain(String agentArgs, Instrumentation inst) { System.out.println("PreMain start"); System.out.println(agentArgs); System.out.println(inst); } } Instrumentation是java1.5新提供的类,它提供在运行时重新加载某个类的的class文件的api。 public interface Instrumentation { /** * 添加一个转换器Transformer,之后的所有的类加载都会被Transformer拦截。 * ClassFileTransformer类是一个接口,使用时需要实现它