package com.yeshi.fanli.aspect;
|
|
import java.io.PrintWriter;
|
|
import org.aspectj.lang.JoinPoint;
|
import org.aspectj.lang.ProceedingJoinPoint;
|
import org.aspectj.lang.annotation.After;
|
import org.aspectj.lang.annotation.AfterReturning;
|
import org.aspectj.lang.annotation.AfterThrowing;
|
import org.aspectj.lang.annotation.Around;
|
import org.aspectj.lang.annotation.Before;
|
|
//@Component
|
//@Aspect
|
public class TestAspect {
|
public static final String EDP = "execution(* com.yeshi.shop.controller.**.*(..))";
|
|
@Before(EDP)
|
public void testBefore(JoinPoint joinpoint) {
|
System.out.println("testBefore");
|
System.out.println(joinpoint.getArgs().length);
|
}
|
|
@After(EDP)
|
public void testAfter(JoinPoint joinpoint) {
|
System.out.println("testAfter");
|
Object[] objs = joinpoint.getArgs();
|
}
|
|
@AfterReturning(pointcut = EDP, returning = "rvt")
|
public void testAfterReturning(JoinPoint joinpoint, Object rvt) {
|
System.out.println("testAfterReturning");
|
}
|
|
@AfterThrowing(throwing = "e", pointcut = EDP)
|
public void testAfterThrowing(JoinPoint joinpoint, Exception e) {
|
System.out.println("testAfterThrowing");
|
}
|
|
@Around(EDP)
|
public Object testAround(ProceedingJoinPoint joinPoint) {
|
|
Object[] args = joinPoint.getArgs();
|
PrintWriter print = (PrintWriter) args[1];
|
print.print("AOP测试。");
|
Object obj = null;
|
try {
|
// obj = joinPoint.proceed(args);
|
} catch (Throwable e) {
|
e.printStackTrace();
|
}
|
return obj;
|
}
|
|
}
|