見出し画像

Spring WebClientについて

目的

SpringBootで利用するMVCとWebClientの違いについてざっくり理解する

説明

SpringBootで利用するSpring MVCはサーブレットAPIおよび、サーブレットコンテナー専用に構築されています。Spring MVCや従来のサーブレットはブロッキング(同期式)がメインの利用方法として想定されています。

Spring WebFlexはSpring MVCと同じ機能を持つフレームワークで、Webサービスを構築するためのフレームワークとなっています。Spring MVCとの大きな違いはリアクティブプログラミングに対応したノンブロッキング(非同期式)のフレームワークとなっています。

ブロッキング、ノンブロッキング、シーケンス


参考

SpringWebFlex

SpringBoot

用語

Spring

JavaのフレームワークWeb開発でよく使われるフレームワークの一つ

SpringBoot

Springをより使いやすくまとめたもの。Springでは設定ファイルをいくつか記述する必要があったが、SpringBootでは極力少なくなるようになっている。

MVC

Model View Controllの略でプログラムの作り方を指し示す用語。ModelはDBを操る層、Viewは画面表示される層、ControllはViewから受け取った内容に対しビジネスロジックを組み込んだりModelとのやり取りを行う

画像1

WebClient

HTTPリクエストを実行するためのノンブロッキングのリアクティブクライアント

リアクティブプログラミング

非同期I/Oを利用するソフトウェアを書くためのアプローチ

サーブレットコンテナ

Webサーバーだけではプログラムを動かす事が出来ないので、サーブレットコンテナを用いてプログラムを動かし、Webサーバーとプログラム動作の結果をWebサーバーでクライアントに返す動作をしている。

ブロッキング(同期式)

該当の処理が終わるまで後続の処理を止め、該当の箇所で待ち続ける処理。

ノンブロッキング(非同期式)

該当の処理が終わらないうちに後続の処理を始める。その代わり、どこかで依頼した処理が終わったことを検知、別処理を行う必要が出てくる。

I/O

I/O(アイ・オーと読む)Input/Outputの略、入出力の意図


この記事が気に入ったらサポートをしてみませんか?