Grails
[Wikipedia|▼Menu]

Grails作者Graeme Rocher
初版2005年10月 (18年前) (2005-10)

最新版4.0.4 / 2020年7月16日 (3年前) (2020-07-16)
リポジトリ

github.com/grails/grails-core

プログラミング
言語Groovy
プラットフォームJavaプラットフォーム
種別Webアプリケーションフレームワーク
ライセンスApache License 2.0
公式サイト ⇒grails.org
テンプレートを表示

Grails (グレイルズ)は、プログラミング言語 Groovy を使用するオープンソースWebアプリケーションフレームワーク。Grails や Groovy はJavaプラットフォーム上で動作する。「設定より規約 (convention over configuration)」というパラダイムにより高い生産性を実現し、スタンドアロンの開発環境を提供しつつ、開発者からはその設定の詳細を隠蔽している。

かつては "Groovy on Rails" と名乗っていたが、Ruby on Rails の David Heinemeier Hansson の要求で現在の名称になった[1][2]。開発は2005年7月に開始され、2006年3月29日に 0.1 をリリース、2008年2月18日に 1.0 をリリース、2011年12月15日に 2.0、2015年3月31日に 3.0 をリリースした。
概要

Grails は以下のような目標を掲げて開発されてきた。

Javaプラットフォームの高生産性のWebフレームワークとする。

HibernateSpring Framework といった既に広く使われているJavaテクノロジーを単純で一貫したインタフェースで再利用する。

一貫性があり習得が容易なフレームワークとする。

フレームワークを構成する各部分についてユーザーに分かりやすい文書を提供する。

複雑で一貫性のない分野でユーザーが期待するものを提供する。

強力で一貫した永続性フレームワーク

GSP (Groovy Server Pages) を使った強力で使いやすいビューテンプレート

Webページコンポーネントを簡単に作成できるダイナミックタグライブラリ

容易に拡張/カスタマイズ可能なAjaxサポート


フレームワークの威力を示すためのサンプルアプリケーションを提供する。

Webサーバや自動リソース再ロード機能など、完全な開発環境を提供する。

Grails は習得しやすく、アプリケーション開発と拡張が容易となるよう設計された。一貫性と強力な機能との正しいバランスを保つことを心がけている。
高い生産性

Grails は従来のJavaによるWeb開発フレームワークに比べて生産性を高めるため、以下の3つの特徴を備えている。

XMLコンフィギュレーション不要

即座に使える開発環境

Mixin経由の機能

XMLコンフィギュレーション不要「設定より規約」も参照

JavaによるWebアプリケーション作成では、開発開始時点や途中で環境やフレームワークの構成設定が必要である。そのコンフィギュレーションは XML ファイルとして切り出して設定しやすくし、構成設定をアプリケーションのコードに埋め込まないようにすることが多い。

XML によるコンフィギュレーションはアプリケーション間の一貫性を高めるということで当初は歓迎された。しかし最近では、有効性は認めるものの、実際にXMLファイルの設定を修正するのは面倒だという人が多くなっている。アプリケーションが成長するにつれて、開発者はフレームワークのコンフィギュレーションを理解し、維持することに時間を費やすことになり、生産性を低下させる要因になっている。アプリケーションに機能を追加したり修正したりする度にXMLコンフィギュレーションも修正していると、アプリケーションの改良が遅くなり、生産性が低下する。

Grails では、XMLコンフィギュレーションファイルの修正を不要にした。その代わり、フレームワークが規約を使ってアプリケーションのコードを調べる。例えば、grails-app/controllers フォルダ内の名前の最後が Controller となっているクラス(例えば BookController)は、MVCのコントローラと見なされる。対応するビューも無指定の場合は grails-app/views/コントローラ名/アクション名.gsp となる。

ただし、設定が全くないわけではなく、データベースやログの設定などは ConfigSlurper の形式で grails-app/conf フォルダ内に配置する。ここの設定は GrailsApplication.config から読み込める。
即座に使える開発環境

従来のJavaによるWebツールキットでは、開発環境の整備は開発者が行わなければいけなかった。Grails は完全な開発環境を備えており、Webサーバ(Apache Tomcat)やデータベース(H2 Database)なども含んでいて、即座に使用することができる。全ての必要なライブラリはディストリビューションに含まれており、JavaのWeb環境も自動的に用意する。

grails run-app で内蔵サーバーを起動できるが、この場合は、開発モードになり、ソースコードの変更は自動的にリロードされ、適用される[3]。開発モードの場合、初期設定は、H2 Database のオンメモリデータベースとなっている。本番環境向けは、grails war で war ファイルにまとめ、Apache Tomcat などに配備することができる[4]
Mixin 経由の機能

Grails はいくつかのクラス上で Mixin 経由の動的メソッドを用意している。Grails では Mixin はメソッドである。Mixin はクラスに動的に追加される機能であり、あたかもその機能がプログラム上でコンパイルされたかのように利用できる。

この動的メソッドは、クラスを拡張したりインタフェースを実装したりすることなく、操作を実行できるようにする。Grails では、クラスの種類に基づいて動的メソッドを提供する。例えば、ドメインクラスはセーブ/削除/検索などの永続性操作を自動化するメソッドを持っている。
Web フレームワーク

Grails は、MVCパラダイムにしたがって設計されている。ここでは、コントローラとビューについて解説する。モデル(ドメインクラス)については後述する。

Grails のアプリケーションは、以下のような grails コマンドによって作成される。grails create-app myapp

このコマンドによって、myapp ディレクトリ配下にGrailsアプリケーションに必要なディレクトリ構造やライブラリ等の雛形が生成される。
コントローラ

Grails はWebページの振る舞いを実装するのにコントローラを使う。以下のコードはコントローラの例である。 class BookController { def list() { [ books: Book.findAll() ] } }


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:26 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef