spring学习(24)-AOP中5种通知类型
今天小编继续学习spr坡纠课柩ing,今天记录一下如何在spring中AOP的5中通知类型。在AOP的通知中,通知分为5中通馆嗳髀姐知类型,分别为:前置通知、后置通知、返回通知、异常通知和环绕通知,接下来分别记录一下。
工具/原料
电脑一台
eclipse
前置通知
1、前置通知就是在方法前加【@Before】注解,前置通知在目标方法开始前执行,如下图:
2、运行程序,可以看到前置通知中的方法正常执行,如下图:
后置通知
1、后置通知就是在方法前加【@After】注解,后置通知在目标方法执行结束后执行,这里需要注意,后置通知无论目标方法是否发生异常都会执行,另外在后置通知中不能访问目标方法的执行结果,如下图:
2、运行程序,可以看到后置通知中的方法正常执行,如下图:
3、下图中我们修改程序中一个位置,让目标方法在运行时发生异常,可以看到后置通知无论目标程序是否发生异常都会执行,如下图:
返回通知
1、返回通知就是在方法前加【@AfterReturning】注解,返回通知在目标方法正常执行之后执行的代码,返回通知是可以访问到目标方法的返回值的,如下图:
2、运行程序,可以看到返回通知中的方法正常执行,并且访问到了目标方法的返回值,如下图:
异常通知
1、异常通知就是在方法前加【@AfterThowing】注解,异常通知是在楫默礤鲼目标方法出现异常时会执行的代码,并且异常通知可以访问到异常对象,且可以指定在出现特定异常时再执行通知代码,如下图:
2、运行程序,可以看到当目标方法发生异常时,异常通知中的方法正常执行,并且访问到了目标方法的异常对象,如下图:
环绕通知
1、环绕通知就是在方法前加【@Around】注解,环绕通知是所有通知类型中功能最为强大的, 能够全面常挢傣捅地着抹较氰控制连接点. 甚至可以控制是否执行连接点。在环绕通知中需要明确调用 ProceedingJoinPoint 的 proceed() 方法来执行被代理的方法. 如果忘记这样做就会导致通知被执行了, 但目标方法没有被执行。环绕通知的方法需要返回目标方法执行之后的结果, 即调用 joinPoint.proceed(); 的返回值, 否则会出现空指针异常。如下图:
2、运行程序,可以看到环绕通知中的方法正常执行,如下图: