AfterReturningAdvice
public void afterReturning(Object arg0, Method arg1, Object[] arg2, Object arg3) throws Throwable {}
arg0是切点方法的返回对象,arg1就是切点方法,arg2是切点方法的输入参数,arg3是执行方法的对象
测试代码
public class MyAfter implements AfterReturningAdvice{
@Override
public void afterReturning(Object arg0, Method arg1, Object[] arg2, Object arg3) throws Throwable {
Users users = (Users) arg2[0];
Logger logger = Logger.getLogger(MyAfter.class);
if(arg0 != null ) {
logger.info(users.getUsername() + "登陆成功 " + arg1.getName() + " " + arg3);
} else {
logger.info(users.getUsername() + "登陆失败");
}
}
}
输出
张三登陆成功 login com.lee.service.impl.UsersServiceImpl@20b14ae6
MethodBeforeAdvice
public void before(Method arg0, Object[] arg1, Object arg2) throws Throwable {}
arg0就是切点方法,arg1是切点方法的输入参数,arg2是执行方法的对象
测试代码
public class MyBefore implements MethodBeforeAdvice{
@Override
public void before(Method arg0, Object[] arg1, Object arg2) throws Throwable {
Users users = (Users) arg1[0];
Logger logger = Logger.getLogger(MyBefore.class);
logger.info(users.getUsername() + "于" + new Date(System.currentTimeMillis()) + "尝试登陆 " + arg0.getName() + " "+arg2 );
}
}
输出
张三于Tue Oct 09 16:15:16 CST 2018尝试登陆 login com.lee.service.impl.UsersServiceImpl@346f173d