package org.nutz.aop.asm.test;
import java.lang.reflect.Method;
import org.nutz.aop.interceptor.AbstractMethodInterceptor;
import org.nutz.castor.Castors;
public class MyMethodInterceptor extends AbstractMethodInterceptor {
public Object afterInvoke(Object obj, Object result, Method arg2, Object... objs) {
System.out.println("After..... " + arg2.getName());
printArgs(objs);
return result;
}
public boolean beforeInvoke(Object arg0, Method arg1, Object... objs) {
System.out.println("-----------------------------------------------------");
System.out.println("Before.... " + arg1.getName());
printArgs(objs);
return true;
}
public boolean whenError(Throwable e, Object arg1, Method arg2, Object... objs) {
System.out.println("抛出了Throwable " + e);
printArgs(objs);
return true;
}
public boolean whenException(Exception e, Object arg1, Method arg2, Object... objs) {
System.out.println("抛出了Exception " + e);
printArgs(objs);
return true;
}
void printArgs(Object... objs) {
System.out.println("参数 " + Castors.me().castToString(objs));
}
}