java / beginner
Snippet
Domänenereignisse asynchron mit EventListener verarbeiten
Spring unterstützt das Observer-Muster durch Application Events. Die Kombination von @EventListener mit @Async ermöglicht es Event-Consumern, Ereignisse in einem separaten Worker-Thread zu verarbeiten. Dadurch wird verhindert, dass zeitintensive Operationen – wie der Versand von Registrierungs-E-Mails – den Haupt-Request-Thread blockieren.
snippet.java
java
1
2
3
4
5
6
7
8
9
10
@Componentpublic class UserNotificationListener {@Async@EventListenerpublic void handleUserRegistration(UserRegisteredEvent event) {String userEmail = event.getEmail();System.out.println("Sending asynchronous confirmation email to: " + userEmail);}}
spring
Erklärung
1
@Component
Registriert die Listener-Klasse als Spring-Bean, damit Event-Listener erkannt werden.
2
@Async
Weist Spring an, diese Methode in einem separaten Hintergrund-Thread-Pool auszuführen.
3
@EventListener
Registriert die Methode für den Aufruf, sobald ein passendes Ereignis veröffentlicht wird.
4
public void handleUserRegistration(UserRegisteredEvent event) {
Definiert den Ereignis-Typ (UserRegisteredEvent), der diesen Listener auslöst.