マイクロフレームワークなにがしにて、ninja framework を触ってみましたが、
今度は Spark というフレームワークにトライしてみようと思います。
Webサイト
セットアップ
https://sparktutorials.github.io/2015/04/02/setting-up-a-spark-project-with-maven.html
チュートリアルの通りにやると、POMを書いてmain関数にルーティング(+コントローラ)を記述するだけですね。
ninjaはplayライクなフレームワークでしたが、sparkはsinatraを模倣したフレームワークのようです。
import static spark.Spark.*; public class Main { public static void main(String[] args) { get("/", (req, res) -> "hello world"); } }
main関数をjavaコマンドなどで通常のjavaアプリケーションとして実行します。
すると、Webサーバーが起動するので、ブラウザで http://localhost:4567 を開いて、hello worldが表示されればOK。
hello world
Viewのカスタマイズ
上記はレスポンスをそのまま返すだけなので、
今度はviewをテンプレート化します。
各種テンプレートエンジンの実装は、jarに分離されているので、下記を参考に、pomに依存関係を追加します。
http://sparkjava.com/documentation.html#views-templates
今回は、FreeMarkerを使った場合を試してみました。
- Model
public class Book { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
-
Controller
public class Main { public static void main(String[] args) { Book book = new Book(); book.setName("日々創造"); get("/", (req, res) -> new ModelAndView(book, "book.ftl"), new FreeMarkerEngine()); } }
-
View (src/spark/template/freemarker/book.ftlに配置するのがポイント)
book name: ${name}
-
出力結果
book name: 日々創造
テンプレートのディレクトリがデフォルトで spark/template/freemarker になっているので注意。
sinatraライクに書きたい方はsparkはオススメなのではないでしょうか。
個人的にはninjaの方が好みかも?