spring学习(24)-AOP中5种通知类型

2025-06-07 17:57:31

今天小编继续学习spr坡纠课柩ing,今天记录一下如何在spring中AOP的5中通知类型。在AOP的通知中,通知分为5中通馆嗳髀姐知类型,分别为:前置通知、后置通知、返回通知、异常通知和环绕通知,接下来分别记录一下。

工具/原料

电脑一台

eclipse

前置通知

1、前置通知就是在方法前加【@Before】注解,前置通知在目标方法开始前执行,如下图:

spring学习(24)-AOP中5种通知类型

2、运行程序,可以看到前置通知中的方法正常执行,如下图:

spring学习(24)-AOP中5种通知类型

后置通知

1、后置通知就是在方法前加【@After】注解,后置通知在目标方法执行结束后执行,这里需要注意,后置通知无论目标方法是否发生异常都会执行,另外在后置通知中不能访问目标方法的执行结果,如下图:

spring学习(24)-AOP中5种通知类型

2、运行程序,可以看到后置通知中的方法正常执行,如下图:

spring学习(24)-AOP中5种通知类型

3、下图中我们修改程序中一个位置,让目标方法在运行时发生异常,可以看到后置通知无论目标程序是否发生异常都会执行,如下图:

spring学习(24)-AOP中5种通知类型

返回通知

1、返回通知就是在方法前加【@AfterReturning】注解,返回通知在目标方法正常执行之后执行的代码,返回通知是可以访问到目标方法的返回值的,如下图:

spring学习(24)-AOP中5种通知类型

2、运行程序,可以看到返回通知中的方法正常执行,并且访问到了目标方法的返回值,如下图:

spring学习(24)-AOP中5种通知类型

异常通知

1、异常通知就是在方法前加【@AfterThowing】注解,异常通知是在楫默礤鲼目标方法出现异常时会执行的代码,并且异常通知可以访问到异常对象,且可以指定在出现特定异常时再执行通知代码,如下图:

spring学习(24)-AOP中5种通知类型

2、运行程序,可以看到当目标方法发生异常时,异常通知中的方法正常执行,并且访问到了目标方法的异常对象,如下图:

spring学习(24)-AOP中5种通知类型

环绕通知

1、环绕通知就是在方法前加【@Around】注解,环绕通知是所有通知类型中功能最为强大的, 能够全面常挢傣捅地着抹较氰控制连接点. 甚至可以控制是否执行连接点。在环绕通知中需要明确调用 ProceedingJoinPoint 的 proceed() 方法来执行被代理的方法. 如果忘记这样做就会导致通知被执行了, 但目标方法没有被执行。环绕通知的方法需要返回目标方法执行之后的结果, 即调用 joinPoint.proceed(); 的返回值, 否则会出现空指针异常。如下图:

spring学习(24)-AOP中5种通知类型

2、运行程序,可以看到环绕通知中的方法正常执行,如下图:

spring学习(24)-AOP中5种通知类型
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢