读书人

应用ASM4.0实现AOP的功能监控每个方

发布时间: 2012-09-03 09:48:39 作者: rapoo

使用ASM4.0实现AOP的功能,监控每个方法的执行时间

接之前的博客http://zhwj184.iteye.com/admin/blogs/1630756 关于asm使用的示例,这次使用asm来动态统计每个方法的执行时间,实现AOP功能。

AOP的更通用的做法是对原始类动态生成子类,调用子类的方法覆盖父类,来实现AOP的功能。著名的 Hibernate 和 Spring 框架,就是使用这种技术实现了 AOP 的“无损注入”。

下面我们就通过一个示例来对方法Foo.execute调用时动态注入方法执行前后的时间统计来统计方法的执行时间


import java.io.PrintStream;public class AsmAopExample$Foo{  public static void execute()  {    AsmAopExample.Monitor.start(); System.out.println("test changed method name");    try {      Thread.sleep(10L);    }    catch (InterruptedException e) {      e.printStackTrace();    }    AsmAopExample.Monitor.end();  }}


读书人网 >软件架构设计

热点推荐