摘要
Spring Aop的执行顺序,让我想起了AOP中常见的注解。@Before让我想到了外部通知,@After则是后置摄像头通知,@AfterReturning是回归通知,@AfterThrowing是异常通知,而@Around则是围绕通知。在Spring4中,这些通知的执行顺序更加完善。
正文
Spring Aop的实行次序
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一切正常次序 出现异常次序
```java
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
关注不迷路
扫码下方二维码,关注宇凡盒子公众号,免费获取最新技术内幕!
评论0