关于AOP通知的获取目标对象的形参和返回值

在这几天做项目时用到了AOP的后置通知,所以就初略的研究了一下他们的使用方法和API,下面我就浅显的聊一下

aop的通知大致上可以分为以下几种:

@Before: 前置通知, 在方法执行之前执行 
@After: 后置通知, 在方法执行之后执行 
@AfterRunning: 返回通知, 在方法返回结果之后执行 
@AfterThrowing: 异常通知, 在方法抛出异常之后 
@Around: 环绕通知, 围绕着方法执行
 

我现在的项目用到的是返回通知,所以我就结合我用到的聊一下

@Aspect
@Component
@Slf4j
public class AopLogging {

    //* 代表该方法为所有类型和所有返回值类型,括号里的..表示该方法的所有类型参数
    @AfterReturning(returning="rev", 
                    pointcut="execution(* com.it.controller.InspectorController.save(..))")
    public void after(Object rev){
        log.debug("后置通知获取目标对象返回结果--" + rev);
        log.debug("后置通知进入");
        
    }
}

returning="rev"我个人理解这个就应该是我们定义的返回对象的名称,这个名称和通知方法的形参名称一样,形参也应该是个Object对象,通知还有一个比较重要的对象,我这个方法没有用到,那就是JoinPoint 对象

JoinPoint对象封装了AOP中切面方法的信息,在切面方法中添加JoinPoint参数,就可以获取到目标方法的形参对象.

常用api

方法名功能
Signature getSignature();获取封装了署名信息的对象,在该对象中可以获取到目标方法名,所属类的Class等信息
Object[] getArgs();获取传入目标方法的参数对象
Object getTarget();获取被代理的对象
Object getThis();获取代理对象

目前我用到了这么多,我也就先聊这么多吧,后期项目再用到了相关方法,后期再更新,如果各位大牛有好的建议和用法,想法可以私信我

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值