切面ProceedingJoinPoint 获取当前执行类 执行方法,执行方法中的入参对象,入参对象的参数

这篇博客介绍了如何在Java的AOP中获取当前执行类、执行方法以及方法的参数。通过`point.getSignature()`可以得到方法签名,进一步获取类名和方法名。使用`point.getArgs()`能获取到方法的所有参数。需要注意的是,从`parameterTypes`获取到的参数类型是`Class`对象,若要操作参数实例,需避免再次调用`.class`。
摘要由CSDN通过智能技术生成

String typeName = point.getSignature().getDeclaringTypeName() 获取当前执行类
String name = point.getSignature().getName() 获取当前执行类中的执行方法
Object[] object = point.getArgs() 获取当前执行方法中的执行参数

获取当前执行方法中的入参对象

Method targetMethod = ((MethodSignature) (point.getSignature())).getMethod();
        Class<?>[] parameterTypes = targetMethod.getParameterTypes();//只有转变为集合才能get[0]
        List<Class<?>> collect = Arrays.stream(parameterTypes).collect(Collectors.toList());
        Class<?> aClass1 = collect.get(0);//执行方法的入参对象
        //注意⚠️这个时候再次的点class 获取到的就是java.lang.class 了 所以如果想要操作aclass1 就不能点class了直接获取对应的属性即可,然后进行后续的操作

在这里插入图片描述

执行目标方法 Object response = point.proceed()

Class<?> aClass1 = collect.get(0) 当前执行的参数类对象
此时不能再次点class,获取到的就是java.lang.class,所以如果有后续操作 不可再次点class

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值