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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Servicepublic 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.