java / beginner
Snippet
Ausführen nicht-blockierender Aufgaben mit der Async-Annotation
Spring ermöglicht asynchrone Methodenausführung über @EnableAsync und @Async. Wird eine mit @Async annotierte Methode aufgerufen, lagert Spring deren Ausführung in einen separaten Thread-Pool aus, ohne den aufrufenden Thread zu blockieren. Die Rückgabe eines CompletableFuture erlaubt es, das Ergebnis später abzurufen oder sofort fortzufahren.
snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@Configuration@EnableAsyncpublic class AppAsyncConfig {}@Servicepublic class NotificationService {@Asyncpublic CompletableFuture<String> sendWelcomeEmail(String recipient) {try {Thread.sleep(1000); // Simulate network latency} catch (InterruptedException e) {Thread.currentThread().interrupt();}return CompletableFuture.completedFuture("Sent email to " + recipient);}}
spring
Erklärung
1
@EnableAsync
Aktiviert die Unterstützung für asynchrone Methodenverarbeitung im gesamten Spring-Anwendungskontext.
2
@Async
Weist Spring an, diese Methode asynchron in einem separaten Hintergrund-Thread auszuführen.
3
return CompletableFuture.completedFuture("Sent email to " + recipient);
Ummantelt den Rückgabewert in ein CompletableFuture, damit der Aufrufer das Hintergrund-Ergebnis verarbeiten kann.