0 Tage Serie
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
@EnableAsync
public class AppAsyncConfig {
}
@Service
public class NotificationService {
@Async
public 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.