春5に従って:
WebClientは、Web要求を実行するための主要なエントリポイントを表すインターフェイスです。
Spring Web Reactiveモジュールの一部として作成されており、これらのシナリオで従来のRestTemplateを置き換える予定です。新しいクライアントは、HTTP/1.1プロトコルを介して機能する事後対応型のノンブロッキングソリューションです
つまり、Spring 5にアップグレードする場合は、RestTemplateを使用して古いアプリケーションを再コーディングする必要がありますか?
または、Spring 5でRestTemplateを使用するための回避策はありますか?
いいえ、RestTemplateは引き続き存在します(少なくとも現時点では)。 WebClientで置き換える必要はありません。
主な違いの1つは、RestTemplateが同期およびブロッキングであることです。すなわち、あなたが残りのコールをするとき、あなたはさらに進むために応答が戻るまで待つ必要があります。
しかし、WebClientはこれとは正反対です。呼び出し側は、応答が戻るまで待つ必要はありません。代わりに、応答があったときに通知されます。
このような機能が必要な場合は、ResttemplateをWebClientに置き換える必要があります。.block()
を使用すると、webclientでの同期処理のようなRestテンプレートを実現できます。しかし、他の方法は不可能です。
Java Doc によると、RestTemplateは非推奨になります。 Springチームは、可能であればWebClientを使用することをお勧めします。
注:5.0では、非ブロッキングのリアクティブorg.springframework.web.reactive.client.WebClientは、同期と非同期の両方、およびストリーミングシナリオを効率的にサポートするRestTemplateの最新の代替手段を提供します。 RestTemplateは将来のバージョンで非推奨となり、今後主要な新機能は追加されません。