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
の内容が表示されることを確認する。