garbagetown

個人の日記です

Spring Boot 入門ハンズオンに行ってきた #jggug_boot

Groovy ユーザーグループのイベントでタイトルに Grails とありながら groovy も grails も gradle も使わないハンズオンに行ってきました。

157 ページに及ぶ入魂のスライドはこちら。

所感

  • 一日分くらいの内容を二時間で駆け抜ける超高濃度ハンズオン
  • Web サービスを上手かつユニークに活用
    • 入力するコードはすべて gist にアップロードされていて、スライドに貼られた bit.ly の URL をクリックしてコピペすれば OK という至れり尽くせり仕様
    • Same Origin Policy を突破する Filter を設定して JSFiddle から localhost にアクセスできるようにするという発想はなかった
  • Spring Boot とてもいい
    • ログが見易い
    • jar に固めたあとでも外からプロパティを変更できる
    • YAML で設定が書ける
    • 依存性に starter を追加するだけで「いい感じ」にコンポーネントが登録される
      • 多数の starter が用意されている
      • 自分で starter を作ることもできる?
    • asset pipeline がほしい
  • Spring Loaded がんばれ
  • TERASOLUNA Global Framework Development Guideline を読みましょう

まとめ

DI コンテナ単体としては Seasar2 と比べて冗長で堅苦しい印象があり、プロジェクト全体としては JavaEE と同じくらい多様で複雑な印象があった Spring Framework ですが、Spring Boot の登場で急に The Twelve-Factor App に書かれているような近代的アプリケーションを開発できるプラットフォームに化けたと感じました。

良くも悪くも過去の資産を切り捨てていないので、放っておいてほしいのに定期的に寄ってきて Java を dis って帰っていく怖い人たちに突っ込まれるポイントはいくつか見受けられるものの、現実的な落としどころだと思います。後方互換性を堅持しながら、なんとか Stream API や Lambda 式を提供するに至った Java8 のような印象です。

Spring 周りはもともとドキュメントがとてもよく整備されていますし、今回のハンズオン資料や上記ガイドラインに加えて書籍も執筆中とのことで、日本語情報も充実しています。

Spring Boot 自体はまだまだ開発が活発とのことなので、大規模案件には向かないかもしれませんが、ようやく名実共に終了という雰囲気になった Struts 先輩の後釜として検討する価値は充分にあると思いました。

ハンズオン中級者編も開催予定とのことで、とても楽しみです。

あわせて読みたい

追記

asset pipeline についてさっそく @making さんからフォロー頂きました。

URL の読み替えや物理パスとの紐付けなどはサーバサイドで解決すべきことなので Resolver と Transformer を用意するけど、静的リソースの変換や結合、ミニファイなどは grunt や gulp を使ってクライアントサイドで実施するよう整理したとのことです。

この辺りは HTTP/2 や ECMAScript 6 の登場でがらっと状況が変わるはずだから、とも書かれており、納得です。