Mehrere gängige Benachrichtigungstypen und ihre Grundfunktionen in AOP:
@Before: Vorabbenachrichtigung, wird ausgeführt, bevor die Zielmethode ausgeführt wird.
@After: Die Postbenachrichtigung wird unabhängig vom Ergebnis der Methodenausführung (einschließlich Ausnahmen) ausgeführt, nachdem die Zielmethode ausgeführt wurde.
@AfterReturning: Benachrichtigung nach der Rückkehr, wird ausgeführt, nachdem die Zielmethode normal beendet wurde, wird jedoch nicht ausgeführt, wenn die Methode eine Ausnahme auslöst.
@AfterThrowing: Ausnahmebenachrichtigung, die ausgeführt wird, wenn die Zielmethode eine Ausnahme auslöst.
@Around: Mit der Surround-Benachrichtigung können Sie vor und nach der Ausführung der Zielmethode benutzerdefinierte Vorgänge ausführen und sogar entscheiden, ob die Zielmethode weiterhin ausgeführt werden soll.
Der Unterschied zwischen der AOP-Ausführungsreihenfolge in Spring4 und Spring5
AOP-Ausführungsreihenfolge in Spring4
Normale Ausführungssequenz:
@Before (Vorabbenachrichtigung)
Ausführung der Zielmethode
@After (Post-Benachrichtigung)
@AfterReturning (Benachrichtigung nach Rückkehr)
Ausnahmeausführungssequenz:
@Before (Vorabbenachrichtigung)
Ausführung der Zielmethode (wirft eine Ausnahme aus)
@After (Post-Benachrichtigung)
@AfterThrowing (Ausnahmebenachrichtigung)
Wenn die Surround-Benachrichtigung (@Around) konfiguriert ist, wird die Vorverarbeitung der Surround-Benachrichtigung vor @Before ausgeführt, und die Nachverarbeitung der Surround-Benachrichtigung wird auch vor @After, @AfterReturning und @AfterThrowing ausgeführt.
AOP-Ausführungsreihenfolge in Spring5
Im Frühjahr 5 hat die Ausführungsreihenfolge von AOP einige Änderungen erfahren, die sich hauptsächlich in der Ausführungsreihenfolge von @AfterReturning und @After widerspiegeln:
Normale Ausführungssequenz:
@Before (Vorabbenachrichtigung)
Ausführung der Zielmethode
@AfterReturning (Benachrichtigung nach Rückkehr)
@After (Post-Benachrichtigung)
Ausnahmeausführungssequenz:
@Before (Vorabbenachrichtigung)
Ausführung der Zielmethode (wirft eine Ausnahme aus)
@AfterThrowing (Ausnahmebenachrichtigung)
@After (Post-Benachrichtigung)
Wenn eine Around-Benachrichtigung (@Around) konfiguriert ist, besteht die Ausführungsreihenfolge der Around-Benachrichtigung immer noch darin, zuerst ihre Vorverarbeitung auszuführen, dann die Ausführung der Zielmethode, dann andere Benachrichtigungen (@AfterReturning, @AfterThrowing, @After) und schließlich die umliegende Nachbearbeitung von Meldungen.