11. リソースローダの設定
2006.02.09 株式会社四次元データ 里見玲爾
- 11.1. リソースローダの種類
- 11.2. リソースローダの設定
この章では、リソース管理を行うリソースローダについて解説します。
11.1. リソースローダの種類
リソースローダはvmファイルやテキストファイルなどのリソースを管理するためのもので、 Velocityがリソースを検索してファイルを読み込む際に必ず利用する重要なシステムです。 リソースローダがどのようにリソースを検索し読み込むかを、設定ファイルなどのプロパティで設定します。 現在のVelocityには以下の4種類のリソースローダが含まれ、同時に複数のローダを指定することもできます。
リソースローダ | 解説 |
---|---|
FileResourceLoader | このローダはデフォルトのローダで、 ファイルシステムからリソースをロードします。 デフォルトではカレントディレクトリからリソースをロードする設定になっています。 |
JarResourceLoader | このローダは特定のjarファイルからリソースをロードします。 リソースをjar形式にまとめること以外はFileResourceLoaderとほぼ同じです。 |
ClasspathResourceLoader | このローダはclassloaderからリソースをロードします。 リソースをjar形式にまとめ、WebアプリケーションのWeb-INF/libディレクトリに入れて利用します。 |
DataSourceResourceLoader | このローダはデータベースなどのDataSourceからリソースをロードするときに利用します。 J2EEサポートを必要とするので、標準ビルドではこのローダはビルドされません。 |
DataSourceResourceLoaderをビルドするにはJ2EEが設定されていることが前提となり、 その上でjar-j2eeというビルドターゲットを使用して新しいvelocity jarを構築します。
11.2. リソースローダの設定
この節では、リソースローダを設定するときの手順を解説します。
11.2.1. リソースローダの名称
リソースローダの設定はプロパティでリソースローダの名称を宣言することから始まります。 リソースローダの名称の宣言はresource.loaderキーで行い、CSV形式による複数指定が可能です。
resource.loader = FILE
FILEと宣言しました。この名称は英文字ならばなんでもよいのですが、利用するローダの性質を表した名称のほうがよいでしょう。
11.2.2.リソースローダのロード
名称を宣言したら、その名称のローダはどのリソースローダであるかを宣言します。 この宣言は<name>.resource.loader.classキーで行います。<name>には11.2.1で宣言した名称が入ります。
FILE.resource.loader.class = org.apache.velocity.runtime.resource.loader.FileResourceLoader
FILEに対してFileResourceLoaderであると宣言しました。キーに対する値にはクラス名を指定します。 またresource.loaderで宣言された名称1つ1つに対して<name>.resource.loader.classキーは必ず宣言しなければいけません。 このとき複数のローダを同時に設定すると、更新頻度が高い場合に効果を発揮します。 たとえばFileResourceLoaderとJarResourceLoaderを設定した場合、リリースの際のテンプレートはすべてjar形式でまとめてJarResourceLoaderで検索させ、 更新があった場合はそのリソースをFileResourceLoaderに検索させれば、jarファイルを構成しなおさなくてもよくなります。
11.2.3.リソースパスの設定
リソースローダがリソースを見つけるためのルートパス(リソースがこのサブディレクトリにあってもよい)を指定します。 この指定は<name>.resource.loader.pathキーで行います。 またCSV形式による複数指定が可能で、その場合はローダがリソースを複数のディレクトリから検索することになります。 また現在このキーはFileResourceLoaderとJarResourceLoaderのときに指定することになっています。
FILE.resource.loader.path = /velocity/templates
またリソースローダがJarResourceLoaderの場合、パスの指定にはjava.net.JarURLConnectionの標準のjarURL構文を使います。
jar:file:/velocity/template.jar
11.2.4.キャッシュの設定
ローダのキャッシュ制御は<name>.resource.loader.cacheキーで行います。 開発を円滑にするためデフォルトはfalseですが、リリース時にはtrueにすべきです。 またこのキーをtrueにすると次の<name>.resource.loader.modificationCheckIntervalキーが有効になります。
FILE.resource.loader.cache = true
11.2.5.修正チェック間隔の設定
11.2.4のキャッシュ設定がtrueのとき、修正チェックを行う秒数を指定します。この数字が0より大きければ設定秒間隔で変更のチェックと再解析が行われ、 0以下のときは修正チェックが行われません。
FILE.resource.loader.cache = true FILE.resource.loader.modificationCheckInterval = 3
このとき修正チェックが3秒間隔で行われます。
11.2.6.文字列の記述
<name>.resource.loader.descriptionキーで開発者のための文字列を記述できます。
FILE.resource.loader.description = FileResourceLoader