深入理解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的執行順序的文章就介紹到這了,更多相關Spring Aop執行順序內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章:
