0 Tage Serie
java / intermediate
Snippet

Nicht-blockierende HTTP-Anfragen mit WebClient

WebClient ist die moderne, nicht-blockierende Alternative zu RestTemplate in Spring. Er unterstützt reaktive Programmierung, was es der Anwendung ermöglicht, viele gleichzeitige Anfragen zu verarbeiten, ohne Threads zu blockieren, was die Skalierbarkeit verbessert.

snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Service
public class RemoteClient {
private final WebClient webClient;
public RemoteClient(WebClient.Builder builder) {
this.webClient = builder.baseUrl("https://api.example.com").build();
}
public Mono<User> getUser(String id) {
return webClient.get()
.uri("/users/{id}", id)
.retrieve()
.bodyToMono(User.class)
.timeout(Duration.ofSeconds(3));
}
}
spring
Erklärung
1
Mono<User>
Ein reaktiver Typ, der ein einzelnes asynchrones Ergebnis darstellt (0 oder 1).
2
bodyToMono(User.class)
Deserialisiert den JSON-Antwortkörper automatisch in ein Java-Objekt.
3
timeout(Duration.ofSeconds(3))
Stellt sicher, dass die Anfrage fehlschlägt, wenn sie länger als die angegebene Dauer dauert.