JoinPoint
JoinPoint对象封装了SpringAop中切面方法的信息,在切面方法中添加JoinPoint参数,就可以获取到封装了该方法信息的JoinPoint对象.
常用API:
- Object getTarget() :获取连接点所在的目标对象(也就是被代理的对象);
例如:我的项目中需要获得当前用户访问的类:
// 2.访问的类
Class clazz = jp.getTarget().getClass();
- Signature getSignature():获取封装了署名信息的对象,在该对象中可以获取到目标方法名,所属类的Class等信息
例如:我的项目中需要获得当前用户访问的方法的名称:
// 3.访问的方法名称
String methodName = jp.getSignature().getName();
- Object[] getArgs():获取连接点方法运行时的参数列表;
Object[] args = jp.getArgs();//获取访问的方法的参数
- Object getThis():获取代理对象
ProceedingJoinPoint对象
spring 框架为我们提供了一个接口:ProceedingJoinPoint,它可以作为环绕通知的方法参数。它是JoinPoint的子接口,该对象只用在@Around的切面方法中
添加了
- Object proceed() throws Throwable:执行目标方法
- Object proceed(Object[] var1) throws Throwable:传入的新的参数去执行目标方法