深入理解Spring Aop的執(zhí)行順序
首先回憶一下 AOP 的常用注解
@Before:前置通知:目標(biāo)方法之前執(zhí)行 @After:后置通知:目標(biāo)方法之后執(zhí)行 @AfterReturning:返回后通知:執(zhí)行方法結(jié)束前執(zhí)行 @AfterThrowing:異常通知:出現(xiàn)異常時(shí)執(zhí)行 @Around:環(huán)繞通知:環(huán)繞目標(biāo)方法執(zhí)行Spring4 中aop正常順序 + 異常順序
try{ @Before method.invoke(obj, args); @AfterReturning}catch(){ @AfterThrowing}finally{ @After}
正常執(zhí)行:@Before(前置通知) ====>@After(后置通知) ====>@AfterReturning(正常返回)異常執(zhí)行:@Before(前置通知) ====>@After(后置通知) ====>@AfterThrowing(方法異常)
另外如果還配置有環(huán)繞通知,則環(huán)繞通知的前置處理先于@Before執(zhí)行
環(huán)繞通知的后置處理也先于@After、@AfterReturning、@AfterThrowing執(zhí)行
正常結(jié)果:
環(huán)繞前置處理@Before前置通知invokeMethod()環(huán)繞通知后置處理@After后置通知@AfterReturning / @AfterThrowing
異常結(jié)果:
環(huán)繞前置處理@Before前置通知@After后置通知@AfterReturning / @AfterThrowing
Spring5 中aop正常順序 + 異常順序
正常執(zhí)行:@Before(前置通知) ====>@AfterReturning(正常返回) ====>@After(后置通知)異常執(zhí)行:@Before(前置通知) ====>@AfterThrowing(方法異常) ====>@After(后置通知)
加上環(huán)繞通知的正常執(zhí)行結(jié)果:
環(huán)繞前置處理@Before前置通知invokeMethod()@AfterReturning / @AfterThrowing@After后置通知環(huán)繞通知后置處理
加上環(huán)繞通知的異常執(zhí)行結(jié)果:
環(huán)繞前置處理@Before前置通知@AfterReturning / @AfterThrowing@After```## Spring Aop的執(zhí)行順序
首先回憶一下 `AOP` 的常用注解
+ @Before:前置通知:目標(biāo)方法之前執(zhí)行
+ @After:后置通知:目標(biāo)方法之后執(zhí)行+ @AfterReturning:返回后通知:執(zhí)行方法結(jié)束前執(zhí)行+ @AfterThrowing:異常通知:出現(xiàn)異常時(shí)執(zhí)行+ @Around:環(huán)繞通知:環(huán)繞目標(biāo)方法執(zhí)行
> Spring4 中aop正常順序 + 異常順序
try{ @Before method.invoke(obj, args); @AfterReturning}catch(){ @AfterThrowing}finally{ @After}
正常執(zhí)行:@Before(前置通知) ====>@After(后置通知) ====>@AfterReturning(正常返回)異常執(zhí)行:@Before(前置通知) ====>@After(后置通知) ====>@AfterThrowing(方法異常)
另外如果還配置有環(huán)繞通知,則環(huán)繞通知的前置處理先于@Before執(zhí)行
環(huán)繞通知的后置處理也先于@After、@AfterReturning、@AfterThrowing執(zhí)行
正常結(jié)果:
環(huán)繞前置處理@Before前置通知invokeMethod()環(huán)繞通知后置處理@After后置通知@AfterReturning / @AfterThrowing
異常結(jié)果:
環(huán)繞前置處理@Before前置通知@After后置通知@AfterReturning / @AfterThrowing
Spring5 中aop正常順序 + 異常順序
正常執(zhí)行:@Before(前置通知) ====>@AfterReturning(正常返回) ====>@After(后置通知)異常執(zhí)行:@Before(前置通知) ====>@AfterThrowing(方法異常) ====>@After(后置通知)
加上環(huán)繞通知的正常執(zhí)行結(jié)果:
環(huán)繞前置處理@Before前置通知invokeMethod()@AfterReturning / @AfterThrowing@After后置通知環(huán)繞通知后置處理
加上環(huán)繞通知的異常執(zhí)行結(jié)果:
環(huán)繞前置處理@Before前置通知@AfterReturning / @AfterThrowing@After
到此這篇關(guān)于深入理解Spring Aop的執(zhí)行順序的文章就介紹到這了,更多相關(guān)Spring Aop執(zhí)行順序內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. vue3+ts+elementPLus實(shí)現(xiàn)v-preview指令2. Xml簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理3. 使用Hangfire+.NET 6實(shí)現(xiàn)定時(shí)任務(wù)管理(推薦)4. 如何在jsp界面中插入圖片5. phpstudy apache開(kāi)啟ssi使用詳解6. jsp實(shí)現(xiàn)登錄驗(yàn)證的過(guò)濾器7. jsp文件下載功能實(shí)現(xiàn)代碼8. 詳解瀏覽器的緩存機(jī)制9. 爬取今日頭條Ajax請(qǐng)求10. xml中的空格之完全解說(shuō)
