Spring I/O 2019 報告 Spring Frameworkのロードマップと5.2の新機能
1. Copyright?2019 NTT corp. All Rights Reserved.
Spring I/O 2019 報告
Spring Framework のロードマップと
5.2 の新機能
2019年6月24日
NTTソフトウェアイノベーションセンタ
岩塚 卓弥
2. 2Copyright?2019 NTT corp. All Rights Reserved.
? 名前:岩塚 卓弥
? 所属:NTT ソフトウェアイノベーションセンタ
? NTTの研究所のうちソフトウェアを専門に扱う
? 自部署ではソフトウェア工学を研究
? Springベースのグループ共通フレームワークの整備を担当
? Spring I/O は 2019 で5回目
? 多分今回がラスト…?!
自己紹介
3. 3Copyright?2019 NTT corp. All Rights Reserved.
Spring I/O について
? ヨーロッパ最大規模の Spring カンファレンス
? 参加者もヨーロッパ勢が多数
? 昨年から1000人規模に拡大
? 例年バルセロナで5月頃開催
? 日程は二日間
4. 4Copyright?2019 NTT corp. All Rights Reserved.
今回の Top 3 Talks
1.Multi-Service Reactive Streams Using Spring,
Reactor, and RSocket
2.Cutting-edge Continuous Delivery: Automated
Canary Analysis through Spring-based
Spinnaker
3.Event-driven Microservices with Axon and
Spring Boot: excitingly boring
5. 5Copyright?2019 NTT corp. All Rights Reserved.
? Spring Framework 5.2 の新機能
? Spring Framework 5.3 以降のロードマップ
今日のトピック
6. 6Copyright?2019 NTT corp. All Rights Reserved.
Spring Framework 5.2
CY 2017 2018 2019 2020
Spring 5.0 Spring 5.1 Spring 5.2
(9/4 GA)
Spring 5.3
(2Q GA)
Spring Framework 5.x の主要テーマ
? コアコンテナの改善
? リアクティブ API の整備
? 関数型 API の整備
? Kotlin 対応
? アノテーション処理の高速化 等
? リアクティブトランザクション 等
? WebMvc.fn 等
? コルーチン対応 等
Spring Framework 5.0 以降継続的に取り組んできたテーマがそれぞれ進展
7. 7Copyright?2019 NTT corp. All Rights Reserved.
Spring Framework 5.2
CY 2017 2018 2019 2020
Spring 5.0 Spring 5.1 Spring 5.2
(9/4 GA)
Spring 5.3
(2Q GA)
Spring Framework 5.x の主要テーマ
? コアコンテナの改善
? リアクティブ API の整備
? 関数型 API の整備
? Kotlin 対応
? アノテーション処理の高速化 等
? リアクティブトランザクション 等
? WebMvc.fn 等
? コルーチン対応 等
Spring Framework 5.0 以降継続的に取り組んできたテーマがそれぞれ進展
本日のメイントピック
8. 8Copyright?2019 NTT corp. All Rights Reserved.
? Spring Framework 5.2 の新機能
? リアクティブAPI関連
? 関数型API関連
? Spring Framework 5.3 以降のロードマップ
今日のトピック
9. 9Copyright?2019 NTT corp. All Rights Reserved.
リアクティブ API の整備
NoSQL
RDBMS
RSocket メッセージング
リアクティブトランザクション
? RSocket を利用したメッセージングAPIを追加
? R2DBC による RDBMS へのリアクティブアクセスに
おいてトランザクション管理が可能に
→ 主要機能のリアクティブ対応がほぼ整った
10. 10Copyright?2019 NTT corp. All Rights Reserved.
? Spring Framework 5.2 の新機能
? リアクティブAPI関連
? RSocket メッセージング
? リアクティブトランザクション
? Reactor の改善
? 関数型API関連
? Spring Framework 5.3 以降のロードマップ
今日のトピック
17. 17Copyright?2019 NTT corp. All Rights Reserved.
? Spring Framework 5.2 の新機能
? リアクティブAPI関連
? RSocket メッセージング
? リアクティブトランザクション
? Reactor の改善
? 関数型API関連
? Spring Framework 5.3 以降のロードマップ
今日のトピック
18. 18Copyright?2019 NTT corp. All Rights Reserved.
? R2DBC
? リレーショナルデータベースのドライバ用のSPIを定義
? PostgreSQL, H2, MSSQL 等の対応ドライバがある
? Reactive Streams 対応
? バックプレッシャが効く
? Spring Data R2DBC
? R2DBC を使用してRDBへアクセスするクライアントを提供
? 現時点で PostgreSQL, H2, MSSQL に対応
R2DBC / Spring Data R2DBC
19. 19Copyright?2019 NTT corp. All Rights Reserved.
リアクティブトランザクション
@Bean
ReactiveTransactionManager reactiveTransactionManager
(ConnectionFactory connectionFactory) {
return new R2dbcTransactionManager(connectionFactory);
}
@Service
@Transactional
public class AccountServiceImpl implements AccountService {
@Autowired
DatabaseClient databaseClient;
@Override
public Mono<Void> transfer(int fromId, int toId, int amount) {
return databaseClient.execute()
//omit
TransactionManager のBean定義
Transactional な Service の実装
Spring Data R2DBC