JoinPoint类 封装了切面的相关方法
System.out.println("目标方法名为:" + joinPoint.getSignature().getName());
System.out.println("目标方法所属类的简单类名:" + joinPoint.getSignature().getDeclaringType().getSimpleName());
System.out.println("目标方法所属类的类名:" + joinPoint.getSignature().getDeclaringTypeName());
System.out.println("目标方法声明类型:" + Modifier.toString(joinPoint.getSignature().getModifiers()));
System.out.println("被代理的对象:" + joinPoint.getTarget());
System.out.println("代理对象自己:" + joinPoint.getThis());
Signature getSignature(); | *获取封装了署名信息的对象,在该对象中可以获取到目标方法名,所属类的Class等信息* |
---|---|
Object[] getArgs(); | 获取传入目标方法的参数对象 |
Object getTarget(); | 获取被代理的对象 |
Object getThis(); | 获取代理对象 |
aop模板:
@Aspect
public class AnnotationAspect {
/**
* 这个表示 --> com.example.chiptest.controller下面的任意包(..)的任意类(*)的任意方法(*)的任意参数(..)
*/
@Pointcut("execution(* com.example.chiptest.controller..*.*(..)) ")
public void declareJoinPointerExpression() {
}
@Before("declareJoinPointerExpression()")
public void before(){
System.out.println("==========方法执行前(注解)==========");
}
@After("declareJoinPointerExpression()")
public void after(){
System.out.println("==========方法执行后(注解)==========");
}
}