0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Grails】設定領域とapplication.ymlの設定項目について

Last updated at Posted at 2020-06-14

最近、仕事でGrailsを使う機会があって、公式ドキュメント読んでいたのでConfig関係について、書く(自分用の備忘録も含めて・・・)
#Grailsの設定領域
主にビルドの設定とランタイムの設定の2つの領域に分かれている

ビルド設定は一般的にGradleとbuild.gradleで行う。
ランタイム設定は、デフォルトでは grails-app/conf/application.yml ファイル内で行われる

※Grails 2.0スタイルの設定を使用したい場合は、GroovyのConfigSlurper構文を使用して設定する。
なおGrails 2.0スタイルには2つの設定ファイルが用意されている
・grails-app/conf/application.groovy
・grails-app/conf/runtime.groovy
アプリケーションクラスに依存しない設定は、application.groovy、
アプリケーションクラスに依存する設定は、runtime.groovyを使用。

#application.ymlの設定項目

###grails.enable.native2ascii
Grails i18nプロパティファイルのnative2ascii変換を必要としない場合は、これをfalseに設定(デフォルト:true)。

###grails.views.default.codec
GSPのデフォルトのエンコーディング体制を設定
'none'、'html'、または'base64'(デフォルト:'none')のいずれか。XSS 攻撃のリスクを減らすためには、これを 'html' に設定。

###grails.views.gsp.encoding
GSP ソース ファイルに使用されるファイル エンコーディング (既定値: 'utf-8')。

###grails.mime.file.extensions
Content Negotiation で MIME タイプの判定にファイル拡張子を使うかどうか(デフォルトは true)。

###grails.mime.types
コンテンツネゴシエーションで使用する、サポートする MIME タイプのマップの設定。

###grails.serverURL
絶対リンクのサーバーURL 部分を指定する文字列で、サーバー名を含む。
この設定はリダイレクトでも使用される。
詳細はドキュメント参照

###grails.views.gsp.sitemesh.preprocess
SiteMesh の前処理を行うかどうか。
無効にするとページのレンダリングが遅くなるが、GSP ビューから生成された HTML を SiteMesh でパースする必要がある場合は、これを無効にする。

###grails.reload.excludes と grails.reload.include
これらのディレクティブを設定することで、プロジェクト固有のソースファイルのリロード動作を決定する。
それぞれのディレクティブは、開発中のアプリケーションを run-app コマンドで実行する際に、リロード動作から除外するか、または含めるべきプロジェクトのソースファイルのクラス名を表す文字列のリストを受け取る。
例えばgrails.reload.include ディレクティブが設定されている場合は、そのリストに含まれるクラスのみがリロードされる。
(grails.reload.excludesは逆に、含まているクラスを除いて、その他をリロードする)

#おまけ
###application.ymlの設定の読み込み
実行時の設定、つまりapplication.ymlで定義されている設定を読みたい場合は、コントローラやタグライブラリで変数として利用できるgrailsApplicationオブジェクトを使用する。
grailsApplicationオブジェクトのconfigプロパティは、Configインターフェースのインスタンスであり、
設定を読み取る多くのメソッドを提供している。
例えば、getPropertyメソッドは、プロパティ・タイプ(デフォルトのタイプはString)を指定したり、デフォルトのフォールバック値を提供したりしながら、コンフィギュレーション・プロパティを効率的に取得するのに便利。

実行時に動的に設定にアクセスすることは、アプリケーションのパフォーマンスにわずかな影響を与える可能性がある。
別のアプローチとしては、GrailsConfigurationAwareインターフェースを実装する方法がある。
こっちについては気が向いたら追記 or 記事投稿します。。。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?