circumflexでyabeを作成 - Day0 (Starting up the project)

プロジェクトの作成

git clone git@github.com:sassunt/circumflex-sbt-quickstart.git

giter8を使用したい場合は、

g8 sassunt/circumflex

アプリケーションの起動

sbt container:start

ブラウザからhttp://localhost:8080を指定しましょう。
it works! と表示されれば成功です。

では、ルーティングを行っている部分を見てみましょう。
ルーティングを行うクラスはどのクラスであるかは、src/main/resources/cx.propertiesファイルに記載されています。

cx.router=com.example.MyRouter

それでは、指定されているクラスを見てみましょう。

class MyRouter extends Router {
  get("/") = "<h1>it works!</h1>"
  ...

ここでは、"/"ルートに対してGETリクエストを受け取った場合に、起こす処理を記述しています。
このようにRouterクラスを継承したクラスでは、リクエストの種類とパスによって、
行う処理を振り分けることになります。

さきほどのルーティングでは、HTMLを返していましたが、
circumflexは、FreeMarkerとscalateをサポートしており、テンプレートエンジンを使用することは可能です。

ただし、scalateのサポートはcircumflex2.1までしか行っておらず、2.2以降でscalateを使用する場合は、
ServletRenderContext.viewなどを使用する必要があります。*1
(参照:https://github.com/inca/circumflex/blob/release-2.2/CHANGELOG.md)

DBの設定

yabeを作り始める前に、DBの設定を行っておきましょう。

今回はH2DBを使用します。
まずは、build.sbtに下記の内容を追加しましょう。

libraryDependencies += "com.h2database" % "h2" % "1.3.164"

そして、さきほどルーティングを行うクラスを指定したcx.propertiesにDBの情報を記載する必要があります。

orm.connection.driver=org.h2.Driver
orm.connection.url=jdbc:h2:mem:yabe
orm.connection.username=sa
orm.connection.password=

以上で必要な設定は終わりです。

次回はモデルについて説明します。

*1:yabe Day2では、サポートされたものを使用せず、scalateを個別で導入し使用します。