Grailsアプリケーションの構成を理解する (4/4)
作成:2013-10-05 08:44
更新:2013-10-05 08:47
更新:2013-10-05 08:47
■「conf」フォルダについて
最後に、各種の設定を保管した「conf」フォルダの内容についてチェックしておきましょう。ここにはいくつもの設定ファイルがありますが、いずれもGroovyスクリプトのファイルとして保存されています。このスクリプトを書き換えることで設定の変更などを行います。
■ApplicationResources.groovy
アプリケーションリソースの設定。デフォルトではJavaScriptのスクリプトファイル(application.js)が利用できるように設定されています。modulesという変数を定義し、その中にapplicationとして必要な設定情報がまとめられています。
■BootStrap.groovy
ブートストラップの設定。ブートストラップは起動時などに何らかの処理を自動的に実行させるものです。これはBootStrapクラスとして定義されています。その中にinitとdestroyというメソッドがあり、ここに処理を記述することで起動時と終了時の処理を実装できるようになっています。
■BuildConfig.groovy
ビルド時の設定情報です。これはかなり多くの情報が記述されていますが、あまりユーザーが編集することはないのですぐに内容を理解しなくてもOKでしょう。
■Config.groovy
一般的な設定情報です。アプリケーションに関する細かな情報が記述されています。全部すぐに理解する必要はないので、主なものだけ頭に入れておくと良いでしょう。
・Grailsで利用可能なMime-type
・Grailsで使われているGSPというビューテンプレートの設定
■DataSource.groovy
データベース関連の設定情報が記述されます。デフォルトでは、H2というデータベースエンジンが指定されています。開発時にはメモリ上にデータベースを一時的に構築して毎回消去し、リリース時にはファイルに保存してずっと保管し続けるように設定されています。この設定を書き換えることで他のデータベースを使えるようになります。
■UrlMappings.groovy
URLマッピング(どのアドレスにアクセスしたらどのファイルを表示するか、というのを割り当てること)の設定です。といっても、MVCのコントローラーを作る度にここを書き換えたりする必要はありません。
――とりあえず、主な設定の内容だけ簡単にまとめましたが、これらの設定用ソースコードの内容を今すぐ理解する必要はありません。「こんなのがあるんだな」程度に覚えておけばいいでしょう。これから開発に入って、何かあったとき、どこに何の設定があるのかわからずオロオロしない程度の知識があれば今は十分です。
■ApplicationResources.groovy
アプリケーションリソースの設定。デフォルトではJavaScriptのスクリプトファイル(application.js)が利用できるように設定されています。modulesという変数を定義し、その中にapplicationとして必要な設定情報がまとめられています。
modules = {
application {
resource url:'js/application.js'
}
}
■BootStrap.groovy
ブートストラップの設定。ブートストラップは起動時などに何らかの処理を自動的に実行させるものです。これはBootStrapクラスとして定義されています。その中にinitとdestroyというメソッドがあり、ここに処理を記述することで起動時と終了時の処理を実装できるようになっています。
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')
}
}
――とりあえず、主な設定の内容だけ簡単にまとめましたが、これらの設定用ソースコードの内容を今すぐ理解する必要はありません。「こんなのがあるんだな」程度に覚えておけばいいでしょう。これから開発に入って、何かあったとき、どこに何の設定があるのかわからずオロオロしない程度の知識があれば今は十分です。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
※関連コンテンツ