Diversi tipi di notifica comuni e le relative funzioni di base in AOP:
@Before: pre-notifica, eseguita prima dell'esecuzione del metodo di destinazione.
@After: la notifica post, indipendentemente dal risultato dell'esecuzione del metodo (incluse le eccezioni), verrà eseguita dopo l'esecuzione del metodo di destinazione.
@AfterReturning: notifica dopo il reso, eseguita dopo che il metodo di destinazione termina normalmente, ma non verrà eseguita se il metodo genera un'eccezione.
@AfterThrowing: notifica di eccezione, eseguita quando il metodo di destinazione genera un'eccezione.
@Around: notifica Surround, puoi eseguire operazioni personalizzate prima e dopo l'esecuzione del metodo di destinazione e puoi anche decidere se continuare a eseguire il metodo di destinazione.
La differenza tra l'ordine di esecuzione AOP in Spring4 e Spring5
Ordine di esecuzione AOP in Spring4
Sequenza di esecuzione normale:
@Prima (pre-notifica)
esecuzione del metodo di destinazione
@Dopo (post notifica)
@AfterReturning (notifica dopo il reso)
Sequenza di esecuzione dell'eccezione:
@Prima (pre-notifica)
Esecuzione del metodo di destinazione (genera un'eccezione)
@Dopo (post notifica)
@AfterThrowing (notifica di eccezione)
Se è configurata la notifica surround (@Around), la pre-elaborazione della notifica surround verrà eseguita prima di @Before e anche la post-elaborazione della notifica surround verrà eseguita prima di @After, @AfterReturning e @AfterThrowing.
Ordine di esecuzione AOP in primavera5
Nella primavera 5, l'ordine di esecuzione di AOP ha subito alcune modifiche, riflesse principalmente nell'ordine di esecuzione di @AfterReturning e @After:
Sequenza di esecuzione normale:
@Prima (pre-notifica)
esecuzione del metodo di destinazione
@AfterReturning (notifica dopo il reso)
@Dopo (post notifica)
Sequenza di esecuzione dell'eccezione:
@Prima (pre-notifica)
Esecuzione del metodo di destinazione (genera un'eccezione)
@AfterThrowing (notifica di eccezione)
@Dopo (post notifica)
Se è configurata una notifica di aggiramento (@Around), l'ordine di esecuzione della notifica di aggiramento è comunque quello di eseguire prima la pre-elaborazione, poi l'esecuzione del metodo di destinazione, quindi le altre notifiche (@AfterReturning, @AfterThrowing, @After) e infine l'ambiente circostante Post-elaborazione delle notifiche.