0 Tage Serie
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
@Component
public class UserNotificationListener {
@Async
@EventListener
public 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.