2017-12-26 5 views
0

Wie pro Feder 5:WebClient vs RestTemplate

WebClient ist eine Schnittstelle, den Haupteintrittspunkt zum Durchführen eines Web-Anforderungen entspricht.

Es wurde als Teil des Spring Web Reactive-Moduls erstellt und ersetzt in diesen Szenarien das klassische RestTemplate. Der neue Client ist eine reaktive, nicht-blockierende Lösung, die über das HTTP/1.1-Protokoll arbeitet Haben

das bedeutet, müssen wir für die alten Anwendungen neu zu kodieren RestTemplate verwenden, wenn wir nach Spring 5 aktualisieren möchten?

Oder gibt es eine Umgehungslösung für die Arbeit mit RestTemplate in Spring 5?

+0

Nein. RestTemplate bleibt bestehen. Der WebClient ist in diesen Szenarien ** vorzuziehen, d. H. Wenn Sie einen reaktiven Webclient (asynchron, nicht blockierend, mit Flux/Mono) wünschen. –

Antwort

3

Nein, RestTemplate wird weiter bestehen. Sie müssen es nicht durch den WebClient ersetzen.
Einer der Hauptunterschied ist RestTemplate ist synchron und blockiert. Wenn Sie einen Ruhezustandsanruf durchführen, müssen Sie warten, bis die Antwort zurückkommt, um weiter vorzugehen.
Aber WebClient ist das komplette Gegenteil davon. Der Anrufer muss nicht warten, bis die Antwort zurückkommt. Stattdessen wird er benachrichtigt, wenn es eine Antwort gibt.
Wenn Sie eine solche Funktionalität benötigen, dann müssen Sie Ihr Resttemplate durch den WebClient ersetzen.
Sie können tatsächlich Rest Vorlage wie synchrone Verarbeitung in Webclient mit .block() erreichen. Aber der andere Weg ist nicht möglich.