1. Copyright?2017 NTT corp. All Rights Reserved.
Spring I/O 2017 報告会
ThymeleafのWebFlux対応
2017年6?29?
NTT ソフトウェアイノベーションセンタ
岩塚 卓弥
2. 2Copyright?2017 NTT corp. All Rights Reserved.
? 名前:岩塚 卓弥
? 所属:NTT ソフトウェアイノベーションセンタ
? NTTの研究所のうちソフトウェアを専?に扱う
? ?部署ではソフトウェア?学を研究
? Springベースのグループ共通フレームワークの整備を担当
? Spring I/Oには2015年から3年連続参加
??紹介
3. 3Copyright?2017 NTT corp. All Rights Reserved.
? Getting Thymeleaf Ready for Spring 5 and
Reactive
? Daniel Fernández – Thymeleaf lead
? スライド
? https://speakerdeck.com/dfernandez/o-2017-getting-
thymeleaf-ready-for-spring-5-and-reactive
? デモ
? https://github.com/danielfernandez/reactive-matchday
今?の元ネタ(?次資料)
4. 4Copyright?2017 NTT corp. All Rights Reserved.
? Thymeleaf 3を使?している
? Thymeleaf 2を使?している
? JSPを使?している
? その他のテンプレートエンジンを使っている
会場アンケート:Thymeleaf 使ってますか
5. 5Copyright?2017 NTT corp. All Rights Reserved.
世界での利?状況
Spring Initializrで選択される
テンプレートエンジンのうち
75%程度がThymeleaf
Thymeleaf Freemarker Mustache
Groovy Templates Velocity
?間DL数は22万以上
?年で7万5千以上の伸び
Spring I/O 2017 Keynoteより
7. 7Copyright?2017 NTT corp. All Rights Reserved.
Spring MVC × Thymeleaf 3 処理概略
TemplateName
Context
Engine
Model
Template
+α
HTML
Controllerで設定したModel
(Map<String, Object>)
8. 8Copyright?2017 NTT corp. All Rights Reserved.
Spring MVC × Thymeleaf 3 処理概略
TemplateName
Context
Engine
Model
Template
+α
HTML
Controllerから渡された
View名を解決したもの
ServletContextや
パス変数等を追加
9. 9Copyright?2017 NTT corp. All Rights Reserved.
Spring MVC × Thymeleaf 3 処理概略
TemplateName
Context
Engine
Model
Template
+α
HTMLTemplateを取得
TemplateとContextから
HTMLを?成
10. 10Copyright?2017 NTT corp. All Rights Reserved.
Spring MVC × Thymeleaf 3 処理概略
TemplateName
Context
Engine
Model
Template
+α
HTML HttpServletResponseに
書き込み
11. 11Copyright?2017 NTT corp. All Rights Reserved.
Reactive化?
TemplateName
Context
Engine
Model
Template
+α
HTML
Blocking! Blocking!
12. 12Copyright?2017 NTT corp. All Rights Reserved.
Reactive化?
TemplateName
Context
Engine
Model
Template
+α
HTML
Blocking! Reactive!
出?をPublisherに