デブサミ 【17-C-6】SpringのこれからとJava開発者向けの次世代RAD、Spring Roo Stefan Schmidt 氏
Stefan Schmidt氏:VMWareのSpringSourceチーム
講演内容はSpring Rooのデモとコンセプト、Springの今後の計画について。
デモンストレーション
Spring Rooでプロジェクトを作成するデモンストレーションでした。非常に軽快にデータベースをつくり、ブラウザから
データ編集をしていました。20分の短期間で、モデル定義からコード生成、テストまで。生産性の高さが伝わってきました。
以下、デモとSpringの周辺製品の情報です
ディレクトリ作成、Spring Rooを使うと画面が切り替わる
hintと入力すればヘルプ、機能が紹介される。かなり簡単にシステム構築できる。
プロジェクトを作成、トップレベルパッケージを設定
Rooはプロジェクト構造を作成、いくつかのフォルダの中はコンフィグファイルが格納されている
つねにhintと入力することでコンテキストにあったヒントが出てくる。
コンフィグ設定
EclipseTool > Datebaseと選ぶだけで新しいデータベースの設定が完了する
プロジェクトの要素を作成する
新しいドメイン Speaker を作成。自動的にSpeaker.javaやテストケースが生成される
Speakerはフィールド 名前/企業を持つ
新しいドメイン Conferenceはフィールド 日付を持つ。
ConferenceとSpeakerの関係を関係づけると単純ではあるが、ドメインモデルができる。
ここまでやったことが機能するか、確認するためのテストを実行(テストケースの自動生成?)
デモの補足
ほんの一部しか紹介できなかったが、ほかにもDatabaseリバースエンジニアリング機能等が追加されている。
これは既存のデータベースをアプリケーションに取り込むための移行ツール。
コミュニティも活発。SpringSourceの外でも多くの活動がある。活動の一環として日本語の翻訳も進んでいる。
Spring Rooフレームワークの今後
現在のRooフレームワークはVersion3。Spring Expression Languages(コード作成補助)、新しいフォーマットのサポート、非同期処理を実現してきた。次のバージョンは3.1。
特徴は
- コミュニティからのリクエストが多いものとして環境プロファイル。
- 開発、テスト、ステージングなどで異なるプロファイルが指定可能
- キャッシュ機能、抽象化機能、conversation管理(デフォルトではStateless、クラウド環境に向いている)
→ V3.1ha近日中にDeveloper Releaseされる
次は3.2
今年の末を予定。Java7のサポートが目玉。JVC4.1、Fork/Joinモデルもサポート。並列型マルチコアプログラミングで活用できる。
Springフレームワーク以外のもの
- Spring Data:非SQL型のデータベースへのアクセスを提供
- リレーショナルデータベースではない。この数ヶ月でMapReduce対応予定
- Spring GemFire:データ管理。分散型キャッシュをサポート
- RabbitMQ:SpringSourceはRabbitMQを買収、MQとのコネクタとしてSpringAMQを用意
- facebookyaLinkedInなどソーシャルネットワークと接続できるように検討している
- Spring Moblie
- Mobileデバイスの検知。SpringMVCの拡張。特定のモバイル端末へのViewの拡張を実現
- Spring Android
- NativeのAndroidアプリケーションを書く手助けになる。SpringのServer側REST統合
- SpringPaymentService:支払い管理
- VMForce:Springアプリケーションをエンタープライズへ適用、Amazon,GAE等クラウドでの実行環境を提供
特に注目して欲しい機能
環境プロファイル、キャッシュ機能、非SQLのサポート
Spring Roo
とても簡単にアプリケーションを作れる。アプリケーション開発時のみRooを使用。
本番時はRooに依存しているものはない。返還後のコードがあればOK。Rooの開発はオーストラリア、シドニーで行われている。日本との時差もすくなく積極的に取り組んでいる。