Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
NI
Uploaded by
NTT DATA Technology & Innovation
933 views
今から始めるWebClient(JSUG勉強会 2020年その6 LT大会)
「今から始めるWebClient」 (JSUG勉強会 2020年その6 LT大会) 2020年7月30日 株式会社NTTデータ 伊藤 司
Technology
◦
Read more
0
Save
Share
Embed
Embed presentation
1
/ 17
2
/ 17
3
/ 17
4
/ 17
5
/ 17
Most read
6
/ 17
7
/ 17
8
/ 17
9
/ 17
10
/ 17
11
/ 17
Most read
12
/ 17
13
/ 17
14
/ 17
15
/ 17
Most read
16
/ 17
17
/ 17
More Related Content
PPTX
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
PDF
DockerとPodmanの比較
by
Akihiro Suda
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
PDF
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
by
NTT DATA Technology & Innovation
PDF
ソフトウェア開発における『知の高速道路』
by
Yoshitaka Kawashima
PDF
PG-REXで学ぶPacemaker運用の実例
by
kazuhcurry
PPTX
世界一わかりやすいClean Architecture
by
Atsushi Nakamura
PDF
イミュータブルデータモデル(入門編)
by
Yoshitaka Kawashima
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
by
NTT DATA Technology & Innovation
DockerとPodmanの比較
by
Akihiro Suda
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
by
Takuto Wada
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
by
NTT DATA Technology & Innovation
ソフトウェア開発における『知の高速道路』
by
Yoshitaka Kawashima
PG-REXで学ぶPacemaker運用の実例
by
kazuhcurry
世界一わかりやすいClean Architecture
by
Atsushi Nakamura
イミュータブルデータモデル(入門編)
by
Yoshitaka Kawashima
What's hot
PPTX
SPAセキュリティ入門~PHP Conference Japan 2021
by
Hiroshi Tokumaru
ODP
Guide To AGPL
by
Mikiya Okuno
PDF
WebSocketのキホン
by
You_Kinjoh
PDF
ソフトウェアにおける 複雑さとは何なのか?
by
Yoshitaka Kawashima
PPTX
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
by
NTT DATA Technology & Innovation
PDF
インフラエンジニアの綺麗で優しい手順書の書き方
by
Shohei Koyama
PDF
怖くないSpring Bootのオートコンフィグレーション
by
土岐 孝平
PDF
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
by
NTT DATA OSS Professional Services
PPTX
C#とILとネイティブと
by
信之 岩永
PDF
ストリーム処理を支えるキューイングシステムの選び方
by
Yoshiyasu SAEKI
PPTX
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
by
NTT DATA Technology & Innovation
PDF
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
by
Yahoo!デベロッパーネットワーク
PPTX
自宅インフラの育て方 第2回
by
富士通クラウドテクノロジーズ株式会社
PDF
AWSのログ管理ベストプラクティス
by
Akihiro Kuwano
PDF
できる!並列・並行プログラミング
by
Preferred Networks
PDF
オンラインゲームの仕組みと工夫
by
Yuta Imai
PDF
5G時代のアプリケーション開発とは - 5G+MECを活用した低遅延アプリの実現へ
by
VirtualTech Japan Inc.
PDF
マイクロにしすぎた結果がこれだよ!
by
mosa siru
KEY
やはりお前らのMVCは間違っている
by
Koichi Tanaka
PDF
JVMのGCアルゴリズムとチューニング
by
佑哉 廣岡
SPAセキュリティ入門~PHP Conference Japan 2021
by
Hiroshi Tokumaru
Guide To AGPL
by
Mikiya Okuno
WebSocketのキホン
by
You_Kinjoh
ソフトウェアにおける 複雑さとは何なのか?
by
Yoshitaka Kawashima
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
by
NTT DATA Technology & Innovation
インフラエンジニアの綺麗で優しい手順書の書き方
by
Shohei Koyama
怖くないSpring Bootのオートコンフィグレーション
by
土岐 孝平
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
by
NTT DATA OSS Professional Services
C#とILとネイティブと
by
信之 岩永
ストリーム処理を支えるキューイングシステムの選び方
by
Yoshiyasu SAEKI
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
by
NTT DATA Technology & Innovation
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
by
Yahoo!デベロッパーネットワーク
自宅インフラの育て方 第2回
by
富士通クラウドテクノロジーズ株式会社
AWSのログ管理ベストプラクティス
by
Akihiro Kuwano
できる!並列・並行プログラミング
by
Preferred Networks
オンラインゲームの仕組みと工夫
by
Yuta Imai
5G時代のアプリケーション開発とは - 5G+MECを活用した低遅延アプリの実現へ
by
VirtualTech Japan Inc.
マイクロにしすぎた結果がこれだよ!
by
mosa siru
やはりお前らのMVCは間違っている
by
Koichi Tanaka
JVMのGCアルゴリズムとチューニング
by
佑哉 廣岡
More from NTT DATA Technology & Innovation
PDF
強化されたEKSのオブザーバビリティ(AWS re:Invent 2025 re:cap LT 大会 発表資料)
by
NTT DATA Technology & Innovation
PDF
基礎から学ぶ PostgreSQL の性能監視 (PostgreSQL Conference Japan 2025 発表資料)
by
NTT DATA Technology & Innovation
PDF
SAFe実践から見えた、フレームワークより大切な組織変革の道程(Scrum Fest Sendai 2025 発表資料)
by
NTT DATA Technology & Innovation
PDF
開発中の新機能 Spark Declarative Pipeline に飛びついてみたが難しかった(JEDAI DAIS Recap#2 講演資料)
by
NTT DATA Technology & Innovation
PDF
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
by
NTT DATA Technology & Innovation
PDF
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
by
NTT DATA Technology & Innovation
PDF
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
by
NTT DATA Technology & Innovation
PDF
つくって壊して直して学ぶ Database on Kubernetes (CloudNative Days Summer 2025 発表資料)
by
NTT DATA Technology & Innovation
PDF
2025年現在のNewSQL (最強DB講義 #36 発表資料)
by
NTT DATA Technology & Innovation
PDF
Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...
by
NTT DATA Technology & Innovation
PDF
Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)
by
NTT DATA Technology & Innovation
PDF
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PDF
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
by
NTT DATA Technology & Innovation
PDF
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
by
NTT DATA Technology & Innovation
PDF
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
by
NTT DATA Technology & Innovation
PDF
pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PDF
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PDF
ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...
by
NTT DATA Technology & Innovation
PDF
生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PDF
DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)
by
NTT DATA Technology & Innovation
強化されたEKSのオブザーバビリティ(AWS re:Invent 2025 re:cap LT 大会 発表資料)
by
NTT DATA Technology & Innovation
基礎から学ぶ PostgreSQL の性能監視 (PostgreSQL Conference Japan 2025 発表資料)
by
NTT DATA Technology & Innovation
SAFe実践から見えた、フレームワークより大切な組織変革の道程(Scrum Fest Sendai 2025 発表資料)
by
NTT DATA Technology & Innovation
開発中の新機能 Spark Declarative Pipeline に飛びついてみたが難しかった(JEDAI DAIS Recap#2 講演資料)
by
NTT DATA Technology & Innovation
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
by
NTT DATA Technology & Innovation
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
by
NTT DATA Technology & Innovation
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
by
NTT DATA Technology & Innovation
つくって壊して直して学ぶ Database on Kubernetes (CloudNative Days Summer 2025 発表資料)
by
NTT DATA Technology & Innovation
2025年現在のNewSQL (最強DB講義 #36 発表資料)
by
NTT DATA Technology & Innovation
Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...
by
NTT DATA Technology & Innovation
Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)
by
NTT DATA Technology & Innovation
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
by
NTT DATA Technology & Innovation
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
by
NTT DATA Technology & Innovation
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
by
NTT DATA Technology & Innovation
pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...
by
NTT DATA Technology & Innovation
生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
by
NTT DATA Technology & Innovation
DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)
by
NTT DATA Technology & Innovation
今から始めるWebClient(JSUG勉強会 2020年その6 LT大会)
1.
© 2020 NTT
DATA Corporation 今から始めるWebClient JSUG勉強会 2020年その6 LT大会 2020年7月30日 株式会社NTTデータ 伊藤 司
2.
© 2020 NTT
DATA Corporation 2 今日話すこと SpringアプリケーションのHTTP Clientとして WebClientを使っていこう Spring Boot(MVC)でのWebClientの始め方
3.
© 2020 NTT
DATA Corporation 3 今日話さないこと WebFluxの詳しい話 Reactorの詳しい話 JettyベースのWebClient
4.
© 2020 NTT
DATA Corporation 4 WebClientって何? Reactor NettyベースのノンブロッキングなHTTP Client Spring WebFluxに同梱されている Spring MVCでも使える
5.
© 2020 NTT
DATA Corporation 5 なぜWebClient? SpringにおけるHTTP Clientといえば... RestTemplate
6.
© 2020 NTT
DATA Corporation 6 なぜWebClient? ですが... RestTemplateはSpring 5.0でメンテナンスモードに ※非推奨になったわけではありません
7.
© 2020 NTT
DATA Corporation 7 なぜWebClient? そこで... WebClient
8.
© 2020 NTT
DATA Corporation 8 WebClientを利用する際のメリット・デメリット メリット • Genericsの扱いが楽 • RestTemplateと比べてGenericsを素直に扱える • 大量のリクエストをさばきやすい • ノンブロッキングであるため、少ないスレッドで大量のリクエストを並列に実行できる • Reactorベースのインタフェースであるため、スレッドを意識せずに並列処理を記述できる デメリット • WebFlux/Reactorの理解が必要 • 凝った処理を実装したい場合にWebFlux/Reactorの知識が必要になる
9.
© 2020 NTT
DATA Corporation 9 WebClientの始め方 Spring Boot(MVC) + WebClient spring-boot-starter-webとspring-boot-starter-webfluxを依存関係に加える 両方が依存関係に含まれる場合、Spring MVCタイプのアプリケーションとして起動 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webflux</artifactId> </dependency>
10.
© 2020 NTT
DATA Corporation 10 WebClientの始め方 Spring Boot(MVC) + WebClient WebClient.Builderをインジェクションし、WebClientを生成する WebClient.BuilderはSpring BootのAuto ConfigurationによってBean定義されてい る。 @Component public class WebClientSample { private final WebClient webClient; public WebClientSample(WebClient.Builder webClientBuilder) { this.webClient = webClientBuilder.build(); } }
11.
© 2020 NTT
DATA Corporation 11 WebClientの基本的な使い方 – GETリクエスト public JsonNode get() { return webClient.get() // リクエストメソッドを指定 .uri("https://httpbin.org/delay/1") // URLを指定 .retrieve() // リクエスト実行 .bodyToMono(JsonNode.class) // レスポンスをオブジェクト(リアクティブ型)にマッピング .block(); // リアクティブ型から通常のオブジェクトを取得 }
12.
© 2020 NTT
DATA Corporation 12 WebClientの基本的な使い方 – POSTリクエスト public JsonNode post() { return webClient.post() // リクエストメソッドを指定 .uri("https://httpbin.org/delay/1") // URLを指定 .contentType(MediaType.APPLICATION_JSON) // コンテンツタイプを指定 .bodyValue(new Message("Hello WebClient")) // POSTのボディを指定 .retrieve() // リクエスト実行 .bodyToMono(JsonNode.class) // レスポンスをオブジェクト(リアクティブ型)にマッピング .block(); // リアクティブ型から通常のオブジェクトを取得 }
13.
© 2020 NTT
DATA Corporation 13 WebClientのカスタマイズ WebClient.Builderをカスタマイズ • WebClientCustomizerインタフェースを実装したクラスを作成する • デフォルトのURL、ヘッダ、Cookieなどを設定可能 WebClientが内部的に使用しているHttpClientをカスタマイズ • ReactorNettyHttpClientMapperインタフェースを実装したクラスを作成する • ReactorNetty、Nettyの知識が必要になるので若干ハードルが高い
14.
© 2020 NTT
DATA Corporation 14 WebClientのカスタマイズ例 - タイムアウト @Component public class ReactorNettyHttpClientTimeoutMapper implements ReactorNettyHttpClientMapper { @Override public HttpClient configure(HttpClient httpClient) { return httpClient.tcpConfiguration((tcpClient -> { // コネクションタイムアウト(ミリ秒で設定) return tcpClient.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 1000) .doOnConnected(conn -> conn // リードタイムアウト(秒で設定) .addHandlerLast(new ReadTimeoutHandler(30)) // ライトタイムアウト(秒で設定) .addHandlerLast(new WriteTimeoutHandler(30))); })); } }
15.
© 2020 NTT
DATA Corporation 15 まとめ Sprint Boot(MVC)でもWebClientを使っていき ましょう! WebClientをきっかけにして、WebFlux/Reactorにも 触れてみましょう! サンプルコードはこちら • https://github.com/itoutki/introduction-to-webclient
16.
© 2020 NTT
DATA Corporation 16 参考資料 • Web on Reactive Stack 2. WebClient • https://docs.spring.io/spring/docs/current/spring-framework-reference/web- reactive.html#webflux-client • Web on Servlet Stack 2.1. RestTemplate • https://docs.spring.io/spring/docs/current/spring-framework- reference/web.html#webmvc-resttemplate • 業務で使いたいWebFluxによるReactiveプログラミング • https://speakerdeck.com/shintanimoto/introduction-to-reactive-programming-using- spring-webflux • Functional Spring Cookbook • https://docs.google.com/presentation/d/1-0NopTfA-CGiCNvKPDOH9ZDMHhazKuoT- _1R69Wp8qs • SpringのWebClientのtimeoutとretryについて • https://blog.ik.am/entries/467
17.
© 2020 NTT
DATA Corporation その他、記載されている会社名、商品名、又はサービス名は、各社の登録商標又は商標です。