天天看點

知識分享之Java——AOP中執行順序

知識分享之Java——AOP中執行順序

背景

日常我們開發時,我們會遇到各種各樣的奇奇怪怪的問題(踩坑o(╯□╰)o),這個常見問題系列就是我日常遇到的一些問題的記錄文章系列,這裡整理彙總後分享給大家,讓其還在深坑中的小夥伴有繩索能爬出來。

同時在這裡也歡迎大家把自己遇到的問題留言或私信給我,我看看其能否給大家解決。

開發環境

  • 系統:windows10
  • JDK:openjdk11
  • 開發工具:IDEA 教育版
  • 架構:SpringBoot
  • 包管理:Gradle

内容

在AOP切片中我們知道其包含了很多個節點,那具體節點前後順序是如何的呢?下面我整理了一下,便于有需要的小夥伴查閱使用。

概念:

Advice 通知

Joinpoint 連接配接點

Pointcut 切入點

Aspect 切面

Proxy 代理

Weaving 織入

步驟包括:

1、@Around

2、@Before

3、@Method

4、@Around

5、@After

6、@AfterThrowing

7、@AfterReturning

如果我們編寫了多個AOP時,在執行到第二步(@Before)時下一步将會進入到第二個AOP的初始@Around第一步中,待第二個AOP執行完畢再跳回至第一個AOP中的第四步,而@Method指的是原方法,隻會被調用一次。不會因為多個AOP而被調用多次。具體順序由@Order注解進行控制。

當進入第五步時出現異常時會進入第六步,當正常時會執行第七步。

本文聲明:

知識分享之Java——AOP中執行順序

88x31.png

​​知識共享許可協定​​