Dropwizard続き。
Dropwizardで作るアプリケーションのビューとしては、「Dropwizard Views」にあるように、FreeMarkerとMustacheが使えるみたいなのですが、せっかくJAX-RSベースのRESTfulアプリケーションを開発しているので、ビューとロジックは分けたいなと思いました。ビュー側で、Javaへの依存を抑えて、いわゆるSingle Page Application(SPA)を作るための下地を作ります。
Dropwizard0.7.0の場合、以下のようになります。
- dropwizard-coreにはdropwizard-assetsへの依存関係が含まれていないので、
build.gradleに追加(dropwizard系のライブラリの構成が整理されたのも0.6→0.7での変更点の一つ)。
compile 'io.dropwizard:dropwizard-assets:0.7.0'
src/main/resource以下にassetsディレクトリ(名前は設定次第なので何でもよい)を作り、index.htmlを配置(中身は確認ができる最低限のもの)。- Applicationクラスの
initializeメソッド内でAssetsBundleをaddBundleする。AssetsBundleには5パターンのコンストラクタがあるのですが、AssetsBundleで定義されているデフォルトのインデックスファイルのファイル名がindex.htmlではなくindex.htmなので、index.htmlにさせるために必要なパラメータを全て渡しています。
public void initialize(Bootstrap<HelloAppConfiguration> bootstrap) { bootstrap.addBundle(new AssetsBundle("/assets", "/app", "index.html", "assets")); }
- ビルド & 起動
- http://localhost:18080/app/ にアクセスし、
index.htmlの内容が表示されることを確認する。