Condivisione della tecnologia

Le insidie ​​di SpringAOP

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Inserisci qui la descrizione dell'immagine
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:
    1. @Prima (pre-notifica)
    2. esecuzione del metodo di destinazione
    3. @Dopo (post notifica)
    4. @AfterReturning (notifica dopo il reso)
  • Sequenza di esecuzione dell'eccezione:
    1. @Prima (pre-notifica)
    2. Esecuzione del metodo di destinazione (genera un'eccezione)
    3. @Dopo (post notifica)
    4. @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:
    1. @Prima (pre-notifica)
    2. esecuzione del metodo di destinazione
    3. @AfterReturning (notifica dopo il reso)
    4. @Dopo (post notifica)
  • Sequenza di esecuzione dell'eccezione:
    1. @Prima (pre-notifica)
    2. Esecuzione del metodo di destinazione (genera un'eccezione)
    3. @AfterThrowing (notifica di eccezione)
    4. @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.