aop:after 和 after-returning 区别

try{
    try{
        //@Before
        method.invoke(..);
    }finally{
        //@After
    }
    //@AfterReturning
}catch(){
    //@AfterThrowing
}

待补充

转载于:https://www.cnblogs.com/annofyf/p/9773614.html

AOP(面向切面编程)中,@After和@AfterReturning是两个常用的注解,用于在目标方法执行后执行一些逻辑。它们的区别如下: 1. @After注解: - @After注解标记的方法会在目标方法执行后无论是否发生异常都会被执行。 - 它类似于finally代码块,无论目标方法是否成功执行,都会执行@After注解标记的方法。 - 通常用于释放资源或进行清理工作。 2. @AfterReturning注解: - @AfterReturning注解标记的方法只会在目标方法成功执行后被执行,不会在目标方法发生异常时执行。 - 它可以获取到目标方法的返回值作为参数。 - 通常用于处理目标方法的返回结果。 下面是一个示例: ```java @Aspect @Component public class LoggingAspect { @After(value = "execution(* com.example.MyService.doSomething(..))") public void afterMethod(JoinPoint joinPoint) { System.out.println("执行目标方法后执行@After注解标记的方法"); } @AfterReturning(value = "execution(* com.example.MyService.doSomething(..))", returning = "result") public void afterReturningMethod(JoinPoint joinPoint, Object result) { System.out.println("目标方法返回值:" + result); System.out.println("执行目标方法成功后执行@AfterReturning注解标记的方法"); } } ``` 在上述示例中,`@After`注解标记的`afterMethod`方法会在目标方法`doSomething`执行后无论是否发生异常都会被执行。而`@AfterReturning`注解标记的`afterReturningMethod`方法只会在目标方法执行成功并且返回结果时执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值