本記事のレポーター陣
- NTTデータ:熊谷一生、島倉優人、瀬下真吾
- NTT:岩塚卓弥、宇梶弘晃、堅田淳也
Spring Dayとは
Spring DayはJSUG(日本Springユーザ会)が主催するSpring Frameworkの日本最大級のイベントです。JSUG発足から10年の歴史の中で、この規模のイベントは昨年開催された「Spring in Summer」に続く2回目となります。来年以降も継続・発展していくことを念頭に今年から名称を「Spring Day」としました。 スポンサーには開発元のPivotalをはじめ、野村総合研究所や日本マイクロソフトなどが名を連ねています。本記事のレポーター陣が所属するNTTデータも、昨年に引き続きスポンサーを務めました。
NTTデータでは現在、Springを活用した「TERASOLUNA Framework」の整備を進めています。また、エンタープライズ開発のベストプラクティスをまとめたガイドラインやライブラリをOSSで公開しています。本イベントでは、NTTデータの倉元貴一さんと池谷智行さんが「Application Re-Architecture Technology」と題したセッションに登壇し、Struts 1からSpring MVCへのシステム移行をテーマに、実際のプロジェクトで発生した問題とその解決方法を紹介されました。
SpringコミッタのStéphane Nicollさんが登壇
キーノートセッション「Spring Framework 5.0」
午前中のキーノートセッションでは、Spring FrameworkやSpring BootのコミッタであるPivotalのStéphane Nicollさんから、2017年3月に正式リリース予定のSpring Framework 5.0について概要と特徴が紹介されました。
Spring Framework 5が焦点を当てている重要テーマとして、以下の4つを挙げています。
- パフォーマンス改善
- JDK9対応
- HTTP/2対応
- リアクティブプログラミング
「パフォーマンス改善」では、新しいBeanの登録方法が説明されました。従来のコンポーネントスキャンに代わり、コンパイルに際し、Bean対象クラスを事前にインデックス化することでSpringの起動を高速化するというものです。その他にも、いくつかの改善項目が挙げられていました。
「JDK9対応」では、JDK9から新たに導入されるモジュール機構である「Jigsaw」への対応が紹介されました。Spring Frameworkの各jarをJigsawのモジュールとして扱えるようになります。
また、「HTTP/2対応」も進められています。Servletの仕様にHTTP/2のサポートが盛り込まれるのは、2017年9月にリリース予定のServlet 4.0からになりますが、TomcatやJetty、UndertowといったサーブレットコンテナはすでにHTTP/2にネイティブで対応しています。Spring Frameworkとしては5.0で各コンテナのネイティブHTTP/2への対応を行い、5.1以降でServlet4.0をサポートしていく予定です。
「リアクティブプログラミング」は、4つのテーマの中で一番多くの時間を割いて説明されました。リアクティブプログラミングは、非同期かつノンブロッキングな処理の記述に向いています。Spring Framework 5.0からはリアクティブプログラミングのスタイルでWebアプリケーションを実装することができるようになります。Stéphaneさんによれば、リアクティブを使う理由は「処理速度ではなくスケーラビリティと安定性にある」のだそうです。説明の終盤には、Spring Framework 5.0を利用して実装されたリアクティブなControllerクラスのコード例が示され、実装イメージを具体的につかむこともできました。
魅力的な機能がいくつも追加されるSpring Framework 5.0ですが、この講演での力の入れ具合から、リアクティブプログラミングへの対応は特に重要視されていることが伺えます。Spring Framework 5.0のマイルストーンビルドを今のうちから触っておき、リアクティブな開発に慣れておくのもよいのではないでしょうか。
セッション「Spring Bootを使って大きな生産性を得る10の方法」
午前にキーノートセッションを行ったStéphaneさんは、午後にも2つのセッションに登壇しました。このセッションでは、Spring Bootで生産性を上げるためのテクニックが紹介されました。
実は、今年の8月に米国ラスベガスで行われたイベント「SpringOne Platform 2016」でも同名のセッションが行われ、非常に好評を博しました。このSpring DayでもStéphaneさんによる全編ライブコーディングでのスピード感あふれるセッションで、一瞬たりとも目が離せない濃い内容でした。
セッションでは、実際に動くサンプルアプリケーションを題材として、OAuth2との連携やFlywayを使ったDBマイグレーション、アプリケーションキャッシュによる高速化などのフィーチャーをSpring Bootのサポートを利用しながら実装していく過程をライブで見ることができました。瞬く間に新たなフィーチャーがアプリケーションに追加されていく様子を目の当たりにし、Spring Bootの高い生産性を実感することのできるセッションでした。
Spring Frameworkは使っているけどSpring Bootはまだ導入していない、といった開発者の方が本セッションを聴講していたら、すぐにでもSpring Bootを導入したくなったことでしょう。
セッション「40 Tips & Tricks for Spring in IntelliJ IDEA」
Stéphaneさんのもう1つの午後のセッションは「40 Tips & Tricks for Spring in IntelliJ IDEA」といい、JetBrainsのYann Cebronさんと共に、開発中の最新ビルド版のIntelliJ IDEAを使用して、Springアプリケーションの開発支援機能のデモを披露してくれました。
紹介されたのは、設定ファイル間の依存関係や定義されたBeanの一覧を参照するといったIDEらしい機能や、Spring開発チームが推奨するコーディングスタイルを表示してくれるなどのユニークな機能。Spring Bootに対する支援機能も充実しているようで、特にauto configurationの依存関係をグラフ表示してくれる機能は、これまで自分でソースコードをたどっていたユーザーの目には、かなり魅力的に映ることでしょう。
IDEの機能を把握し上手く活用することが、開発の生産性を向上させる近道であるということを教えてくれたセッションでした。
お知らせ本レポートを書いたNTTデータが中心となって『Spring徹底入門』という本を書きました。手に取っていただけたら幸いです!