Grails予習

明日、JJUG CrossCommunityConference2008Springに行く予定です。Grails,JRuby On Rails, Wicket, Clickのそれぞれのセッションとスピーカーの方のパネルディスカッションを聞きにいくのが目的なのですが、その前にいままで全くノーチェックだったGrailsをちょっと試してみてます。いままでStrutsJSFを主に使ってきて、Groovyも使ったことありませんが。。

Grailsって裏ではSpringとHibernateを使っているのですね。以前、その組み合わせを使っていてあまりいい印象を持っていなくて、特にHibernateのHQLになじめなくて今はSeaserS2Daoに落ち着いています。さしあたっては、SpringやHibernateに直接触らなくても大丈夫かもしれませんが、遅かれ早かれ必要は出てくるでしょうし。とはいえ、私がHibernateを使わなくなってだいぶたつので、使いやすくなっているだろうとは思うのですが。

使い方

とりあえずの使い方は↑のサイトを見ていただければよいと思うのですが、Javaはインストール済みとして、

インストール
  1. ここからGroovyのzipファイルをダウロードします。
  2. 適当な場所に展開して、その場所を環境変数GROOVY_HOMEに設定します。
  3. PATHに$GROOVY_HOME/binを追加します。
  4. ここからgrailsのzipファイルをダウンロードします。
  5. 適当な場所に展開して、その場所を環境変数GRAILS_HOMEとして設定します。
  6. PATHに$GRAILS_HOME/binを追加します。
アプリケーションの作成
  1. "grails create-app grails-sample"を実行してアプリケーションを作成します(grails-sampleはアプリケーション名です)
  2. grails-sampleディレクトリに移動して、"grails create-domain-class Book"を実行してドメインクラスを生成します
  3. grails-app/domain/Book.groovy を開いてフィールドを追加します。
  4. "grails generate-all Book"を実行してコントロールとビューを生成します。
  5. "grails run-app"を実行してアプリケーションを開始して、http://localhost:8080/grails-sample/にアクセスしてみます。

と、これだけでCRUDの機能をもったアプリケーションが作成できます。

ドメインモデルBookのフィールドは↓のような感じです。Groovyの機能でgetter/setterは不要。

class Book{
    Long id
    Long version
    String author
    String title
}

感想

自動生成されるCRUDアプリケーションを動かすことは簡単にできるんですが、そこからいざ実際の開発に使おうと思うと、とたんに何をすればよいかわからなくなってしまいました。結構な量のファイルが自動生成されて、それだけで引いてしまのと、ネット上での日本語のリソースも少ないので、結構苦労しそうな印象です。この辺は、まだGWTの方が戸惑いはなかったかも。