libro
www.tuyano.com
初心者のためのGroovy/Grails入門

Grailsアプリケーションの構成を理解する (4/4)

作成:2013-10-05 08:44
更新:2013-10-05 08:47

■「conf」フォルダについて

最後に、各種の設定を保管した「conf」フォルダの内容についてチェックしておきましょう。ここにはいくつもの設定ファイルがありますが、いずれもGroovyスクリプトのファイルとして保存されています。このスクリプトを書き換えることで設定の変更などを行います。

■ApplicationResources.groovy
アプリケーションリソースの設定。デフォルトではJavaScriptのスクリプトファイル(application.js)が利用できるように設定されています。modulesという変数を定義し、その中にapplicationとして必要な設定情報がまとめられています。
modules = {
    application {
        resource url:'js/application.js'
    }
}

■BootStrap.groovy
ブートストラップの設定。ブートストラップは起動時などに何らかの処理を自動的に実行させるものです。これはBootStrapクラスとして定義されています。その中にinitdestroyというメソッドがあり、ここに処理を記述することで起動時と終了時の処理を実装できるようになっています。
class BootStrap {

    def init = { servletContext ->
    }
    def destroy = {
    }
}

■BuildConfig.groovy
ビルド時の設定情報です。これはかなり多くの情報が記述されていますが、あまりユーザーが編集することはないのですぐに内容を理解しなくてもOKでしょう。

■Config.groovy
一般的な設定情報です。アプリケーションに関する細かな情報が記述されています。全部すぐに理解する必要はないので、主なものだけ頭に入れておくと良いでしょう。

・Grailsで利用可能なMime-type
grails.mime.types = [
    all:           '*/*',
    atom:          'application/atom+xml',
    css:           'text/css',
    csv:           'text/csv',
    form:          'application/x-www-form-urlencoded',
    html:          ['text/html','application/xhtml+xml'],
    js:            'text/javascript',
    json:          ['application/json', 'text/json'],
    multipartForm: 'multipart/form-data',
    rss:           'application/rss+xml',
    text:          'text/plain',
    hal:           ['application/hal+json','application/hal+xml'],
    xml:           ['text/xml', 'application/xml']
]

・Grailsで使われているGSPというビューテンプレートの設定
grails {
    views {
        gsp {
            encoding = 'UTF-8'
            htmlcodec = 'xml' // use xml escaping instead of HTML4 escaping
            codecs {
                expression = 'html' // escapes values inside ${}
                scriptlet = 'html' // escapes output from scriptlets in GSPs
                taglib = 'none' // escapes output from taglibs
                staticparts = 'none' // escapes output from static template parts
            }
        }
        // escapes all not-encoded output at final stage of outputting
        filteringCodecForContentType {
            //'text/html' = 'html'
        }
    }
}

■DataSource.groovy
データベース関連の設定情報が記述されます。デフォルトでは、H2というデータベースエンジンが指定されています。開発時にはメモリ上にデータベースを一時的に構築して毎回消去し、リリース時にはファイルに保存してずっと保管し続けるように設定されています。この設定を書き換えることで他のデータベースを使えるようになります。
environments {
    development {
        dataSource {
            dbCreate = "create-drop" // one of 'create', 'create-drop',
                'update', 'validate', ''
            url = "jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
        }
    }
    test {
        dataSource {
            dbCreate = "update"
            url = "jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
        }
    }
    production {
        dataSource {
            dbCreate = "update"
            url = "jdbc:h2:prodDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
            properties {
               maxActive = -1
               minEvictableIdleTimeMillis=1800000
               timeBetweenEvictionRunsMillis=1800000
               numTestsPerEvictionRun=3
               testOnBorrow=true
               testWhileIdle=true
               testOnReturn=false
               validationQuery="SELECT 1"
               jdbcInterceptors="ConnectionState"
            }
        }
    }
}

■UrlMappings.groovy
URLマッピング(どのアドレスにアクセスしたらどのファイルを表示するか、というのを割り当てること)の設定です。といっても、MVCのコントローラーを作る度にここを書き換えたりする必要はありません。
class UrlMappings {

    static mappings = {
        "/$controller/$action?/$id?(.${format})?"{
            constraints {
                // apply constraints here
            }
        }

        "/"(view:"/index")
        "500"(view:'/error')
    }
}

――とりあえず、主な設定の内容だけ簡単にまとめましたが、これらの設定用ソースコードの内容を今すぐ理解する必要はありません。「こんなのがあるんだな」程度に覚えておけばいいでしょう。これから開発に入って、何かあったとき、どこに何の設定があるのかわからずオロオロしない程度の知識があれば今は十分です。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

※関連コンテンツ

「初心者のためのGroovy/Grails入門」に戻る