AOP解析

本文主要探讨如何在不修改原有代码的基础上,利用AOP实现功能拓展。文章详细讲解了AOP如何获取目标方法的参数、返回值和异常信息,并介绍了AOP的5个通知执行顺序,包括在单一和多个切面类情况下的执行逻辑。
摘要由CSDN通过智能技术生成

       近期我们项目组接收到一个任务,就是在之前开发的“智物”系统中添加一些功能,当然,这种添加是要符合设计模式“开闭原则”的,“对拓展开发,对修改关闭”,也就是说我们这次的功能拓展不可以修改以前系统的代码,一句也不可以改。那么在这种背景下进行开发的话,我们第一个想到的便是利用AOP切面进行功能拓展了。所以,今天小编就来为大家分享一下AOP的细节。

        本篇我们重点分为两部分进行介绍:

       AOP获取目标方法的参数、返回值、异常信息的方式。

       AOP的5个通知执行顺序。

一、AOP获取目标方法参数、返回值、异常信息的方式

①、获取目标方法的参数

在通知方法中的形参列表中可以添加一个参数“JoinPoint joinPoint”,我们可以通过该参数来获取目标对象的方法和参数。

joinPoint.getSignature( ) 获取方法的全签名

joinPoint.getSignature( ).getName( ) 获取方法名称

Object[] args=joinPoint.getArgs( )  获取目标方法的参数,参数想要打印出来需要Arrays.asList(args)

②、获取目标方法的返回值

	@Pointcut("execution(public int com.atguigu.impl.MyMathCalculator.*(..))")
	public void MyPoint(){};

    @AfterReturning(value="MyPoint()",returning="result")
	public static void logReturn(JoinPoint joinPoint,Object result){
		Signature signature &
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Elsa~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值