java / intermediate
Snippet
Komponenten entkoppeln mit Application Events
Application Events fördern die lose Kopplung zwischen Komponenten. Anstatt einen E-Mail-Dienst direkt aus einem Registrierungsdienst aufzurufen, veröffentlichen Sie ein Event, das interessierte Listener unabhängig verarbeiten können.
snippet.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public record UserRegisteredEvent(String email) {}@Servicepublic class RegistrationService {@Autowired private ApplicationEventPublisher publisher;public void register(String email) {// Registration logic...publisher.publishEvent(new UserRegisteredEvent(email));}}@Componentpublic class EmailListener {@EventListenerpublic void handleUserRegistration(UserRegisteredEvent event) {System.out.println("Sending welcome email to: " + event.email());}}
spring
Erklärung
1
ApplicationEventPublisher
Spring-Interface zum Senden von Events im gesamten Kontext.
2
publishEvent
Methode zum Versenden eines Objekts als Event an alle registrierten Listener.
3
@EventListener
Annotation, die eine Methode als Event-Handler für einen bestimmten Typ markiert.