Plusieurs types de notifications courants et leurs fonctions de base dans AOP :
@Before : pré-notification, exécutée avant l'exécution de la méthode cible.
@After : la notification de publication, quel que soit le résultat de l'exécution de la méthode (y compris les exceptions), sera exécutée après l'exécution de la méthode cible.
@AfterReturning : notification après retour, exécutée après la fin normale de la méthode cible, mais ne sera pas exécutée si la méthode lève une exception.
@AfterThrowing : notification d'exception, exécutée lorsque la méthode cible lève une exception.
@Around : notification Surround, vous pouvez effectuer des opérations personnalisées avant et après l'exécution de la méthode cible, et vous pouvez même décider de continuer à exécuter la méthode cible.
La différence entre l'ordre d'exécution AOP dans Spring4 et Spring5
Ordre d'exécution AOP dans Spring4
Séquence d'exécution normale :
@Avant (pré-notification)
exécution de la méthode cible
@After (post-notification)
@AfterReturning (notification après retour)
Séquence d'exécution des exceptions :
@Avant (pré-notification)
Exécution de la méthode cible (lève une exception)
@After (post-notification)
@AfterThrowing (notification d'exception)
Si la notification surround (@Around) est configurée, le prétraitement de la notification surround sera exécuté avant @Before, et le post-traitement de la notification surround sera également exécuté avant @After, @AfterReturning et @AfterThrowing.
Ordre d'exécution AOP dans Spring5
Au printemps 5, l'ordre d'exécution d'AOP a subi quelques changements, principalement reflétés dans l'ordre d'exécution de @AfterReturning et @After :
Séquence d'exécution normale :
@Avant (pré-notification)
exécution de la méthode cible
@AfterReturning (notification après retour)
@After (post-notification)
Séquence d'exécution des exceptions :
@Avant (pré-notification)
Exécution de la méthode cible (lève une exception)
@AfterThrowing (notification d'exception)
@After (post-notification)
Si une notification autour (@Around) est configurée, l'ordre d'exécution de la notification autour est toujours d'exécuter son prétraitement en premier, puis l'exécution de la méthode cible, puis les autres notifications (@AfterReturning, @AfterThrowing, @After), et enfin le post-traitement environnant des notifications.