【ハウツー】
入力パラメータのバインディング時に一部のパラメータのみのバインドが以下のように簡単に記述できるようになった。ドメインクラスにも同じ構文で一部のプロパティのみにアクセスすることができる。
// firstNameとlastNameのみをバインド
person.properties["firstName","lastName"] = params
// ドメインクラスのプロパティの一部にアクセス
person.properties["firstName","lastName"].each { println it }
また、Grails 1.1ではリスト・セット・マップといったコレクション型のバインディングもサポートされている。
Grails 1.0系ではプラグインとして提供されていたTesting PluginがGrails本体に統合された。GrailsにはもともとJUnitが統合されているが、Testing Pluginの統合によってコントローラ、ドメインクラス、タグライブラリなどの共通的なクラスの振る舞いを簡単にエミュレートすることができるようになり、テストケースの記述が容易になった。
grails install-templatesコマンドで生成したテンプレートを修正することで動的なScaffoldingの外観をカスタマイズできるようになった。また、MANY-TO-MANYや、単方向のONE-TO-MANYもサポートされた。
GroovyはDSL(Domain Specific Language:特定のドメイン・用途に特化した言語)を定義するのに適した言語だ。GrailsでもSpringの設定ファイルをGroovyで記述するためのBeanBuilderや、AntのビルドファイルをGroovyで記述するためのGantといったDSLが利用されている。
Grails 1.1では新たにLog4jの設定を記述するためのDSL(LOG4J DSL)が追加されたほか、BeanBuilderがSpringの名前空間に対応した。
Grailsはフレームワークの機能を拡張するためのプラグイン機構を備えている。Grails 1.1ではgrails install-pluginコマンドでプラグインをインストールする際に-globalオプションを付与することで全てのGrailsアプリケーションからプラグインを利用することができるようになった。
また、複数のプラグインリポジトリのサポートや、プラグインを特定のスコープ(テスト時のみ使用するなど)だけに限定することができるようになったなど、Grailsアプリケーションのプロジェクトを運用していく上で利便性を向上するための改善が行われている。
* * *
Grailsは登場した当初はRuby on Railsのコピーフレームワークといった取り上げ方をされることが多かったが、Javaならではのメリットを活かしたフレームワークとして進化を続けている。Grails 1.1では本稿で紹介したもの以外にも多くの新機能が追加されているが、大きな新機能よりも開発者の利便性を向上させるためのものが中心だ。これはGrailsがすでに成熟したフレームワークである証ともいえるだろう。
JavaEEアプリケーションはJavaVMやアプリケーションサーバといった安定したインフラが整備されていることが大きな魅力だが、反面仕様は複雑でその開発は重厚長大なものだ。スクリプト言語の軽快さを活かしつつ、JavaEEプラットフォームで稼動させることのできるGrailsはまさにJavaとスクリプト言語のいいとこどりをしたフレームワークといえるのではないだろうか。Grailsの今後に注目したい。
| 【ハウツー】Mavenのパワーをより簡単に! Apache Ivyを試す [2008/12/3] |
| Grails高速化成功、Spring傘下で初公開 [2009/3/12] |
| Spring、Groovy、Grails 1企業の旗本へ、SpringSource買収発表 [2008/11/13] |
| 【コラム】イマドキのIDE事情 第40回 Groovy/Grailsもサポート! NetBeans 6.5ベータ版を試してみる [2008/9/19] |
| 【レポート】開発事例を12本紹介! 実用性の高さを示した「Groovy コンファレンス 2008」 [2008/9/12] |
| Cypress、「PSoC 1」用IDE「PSoC Designer」の新バージョンを発表 [16:16 5/22] |
| SCREEN、プリント基板向け直接描画装置の高精細モデルを発表 [16:08 5/22] |
| 東北大、顔料からの有限長カーボンナノチューブ分子の合成に成功 [15:52 5/22] |
| 性かく乱物質「幼若ホルモン類似体」はミジンコに多大に影響 - NIBBなど [15:43 5/22] |
| TI、産業用アプリケーション向けに「OMAP5432」搭載評価モジュールを発表 [15:19 5/22] |
|
[綾瀬はるか]女子高生に“天然”進路指導 女子校をサプライズ訪問 [16:24 5/22] エンタメ |
|
【特別企画】大規模化・複雑化するデータセンター運用管理の最適解 [16:24 5/22] エンタープライズ |
|
Cypress、「PSoC 1」用IDE「PSoC Designer」の新バージョンを発表 [16:16 5/22] 開発・SE |
|
絵が描けなくても3Dマンガを作成可能なWebアプリ「箱人形マンガ」 [16:16 5/22] クリエイティブ |
|
「能率手帳」が新名称「NOLTY(ノルティ)」へ! - 64年ぶりブランド刷新 [16:16 5/22] キャリア |