这篇文章给大家分享的是有关Spring Aop执行顺序的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
首先回忆一下 AOP 的常用注解
@Before:前置通知:目标方法之前执行
@After:后置通知:目标方法之后执行
@AfterReturning:返回后通知:执行方法结束前执行
@AfterThrowing:异常通知:出现异常时执行
@Around:环绕通知:环绕目标方法执行
Spring4 中aop正常顺序 + 异常顺序
try{
@Before
method.invoke(obj, args);
@AfterReturning
}catch(){
@AfterThrowing
}finally{
@After
}
正常执行:@Before(前置通知) ====>@After(后置通知) ====>@AfterReturning(正常返回)
异常执行:@Before(前置通知) ====>@After(后置通知) ====>@AfterThrowing(方法异常)
另外如果还配置有环绕通知,则环绕通知的前置处理先于@Before执行
环绕通知的后置处理也先于@After、@AfterReturning、@AfterThrowing执行
正常结果:
环绕前置处理
@Before前置通知
invokeMethod()
环绕通知后置处理
@After后置通知
@AfterReturning / @AfterThrowing
异常结果:
环绕前置处理
@Before前置通知
@After后置通知
@AfterReturning / @AfterThrowing
Spring5 中aop正常顺序 + 异常顺序
正常执行:@Before(前置通知) ====>@AfterReturning(正常返回) ====>@After(后置通知)
异常执行:@Before(前置通知) ====>@AfterThrowing(方法异常) ====>@After(后置通知)
加上环绕通知的正常执行结果:
环绕前置处理
@Before前置通知
invokeMethod()
@AfterReturning / @AfterThrowing
@After后置通知
环绕通知后置处理
加上环绕通知的异常执行结果:
环绕前置处理
@Before前置通知
@AfterReturning / @AfterThrowing
@After
```## Spring Aop的执行顺序
首先回忆一下 `AOP` 的常用注解
+ @Before:前置通知:目标方法之前执行
+ @After:后置通知:目标方法之后执行
+ @AfterReturning:返回后通知:执行方法结束前执行
+ @AfterThrowing:异常通知:出现异常时执行
+ @Around:环绕通知:环绕目标方法执行
> Spring4 中aop正常顺序 + 异常顺序
try{
@Before
method.invoke(obj, args);
@AfterReturning
}catch(){
@AfterThrowing
}finally{
@After
}
正常执行:@Before(前置通知) ====>@After(后置通知) ====>@AfterReturning(正常返回)
异常执行:@Before(前置通知) ====>@After(后置通知) ====>@AfterThrowing(方法异常)
另外如果还配置有环绕通知,则环绕通知的前置处理先于@Before执行
环绕通知的后置处理也先于@After、@AfterReturning、@AfterThrowing执行
正常结果:
环绕前置处理
@Before前置通知
invokeMethod()
环绕通知后置处理
@After后置通知
@AfterReturning / @AfterThrowing
异常结果:
环绕前置处理
@Before前置通知
@After后置通知
@AfterReturning / @AfterThrowing
Spring5 中aop正常顺序 + 异常顺序
正常执行:@Before(前置通知) ====>@AfterReturning(正常返回) ====>@After(后置通知)
异常执行:@Before(前置通知) ====>@AfterThrowing(方法异常) ====>@After(后置通知)
加上环绕通知的正常执行结果:
环绕前置处理
@Before前置通知
invokeMethod()
@AfterReturning / @AfterThrowing
@After后置通知
环绕通知后置处理
加上环绕通知的异常执行结果:
环绕前置处理
@Before前置通知
@AfterReturning / @AfterThrowing
@After
感谢各位的阅读!关于“Spring Aop执行顺序的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。