Spring-AOP-环绕通知@Around

Spring-AOP-环绕通知@Around

环绕通知是Spring中最强大的通知

@Around:环绕:就是手写版的动态代理

四合一通知其实就是环绕通知,而且环绕通知里面的执行顺序是确定的

复制代码
@Around(value = "myPointCut()")

    public Object myAround(ProceedingJoinPoint proceedingJoinPoint)

    {

        Object[] args = proceedingJoinPoint.getArgs();

        Object result=null;

        try {

            //前置通知@Before

            System.out.println("环绕前置通知");

            //目标方法执行

            result = proceedingJoinPoint.proceed(args);

            //环绕返回通知@AfterReturning

            System.out.println("环绕返回通知");

        } catch (Throwable throwable) {

            //环绕异常通知@AfterThrowing

            System.out.println("环绕异常通知");

            throw new RuntimeException(throwable);

        } finally {

            //最终通知@After

            System.out.println("环绕最终通知");

        }

        return result;

    }
复制代码

@Around的执行顺序

  Spring4.0

    正常情况:环绕前置=====目标方法执行=====环绕返回=====环绕最终

    异常情况:环绕前置=====目标方法执行=====环绕异常=====环绕最终

  Spring5.28

    正常情况:环绕前置=====目标方法执行=====环绕返回=====环绕最终

    异常情况:环绕前置=====目标方法执行=====环绕异常=====环绕最终

 

posted @   orz江小鱼  阅读(3408)  评论(1编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示