JetBrains 製の Web フレームワーク。
coroutine を使用した非同期処理がベースになっている。
Web のみをカバーするシンプルなもの (実際は Client もカバーするようであるが)。
Netty, Jetty 等を使用して動く(servlet としても動く)。
ORM 等は別途選定する必要がある。
JSON ライブラリ。
Jackson よりパフォーマンスが良さそう。
こちらはリフレクションベース。
Dagger はコード生成ベース。
どちらにするかは要検討。
TODO
- jOOQ
タイプセーフ SQL。 join したものを POJO にマッピングする等がすこし手間がかかりそう。 - Exposed JetBrains が作っているが、まだ "Exposed is a prototype for a lightweight SQL library" って書いてあって怖い。 JOOQ を kotlin に特化したような感じ?
- JPA + Querydsl
JPA の query builder が使いづらい部分を補える。 - Spring Data JPA Spring 導入するなら。
- Doma 日本で比較的使われていそう。
LSF4J は logging ライブラリの facade。
裏で動く実際の logging ライブラリが Logback。
Docker (つまり gradle) で動かす場合、 Continuous Build (watch) がまだ incubating feature であり、 いろいろと問題 があるので、 IDE で動かすほうが良さそう。
- JDK 8
を入れる
( 現在 JDK 9 では auto reload が動かない問題 がある。) - IDEA でプロジェクトフォルダを
File > Open...
する - IDEA が使用する SDK を JDK 8 にする。
- IDEA の
Run > Run
でio.ktor.server.netty.DevelopmentEngine
を実行する - open http://localhost:8080
http://ktor.io/servers/autoreload.html
.class ファイルが更新されると自動で load する。
対象となる .class は out
という名前のフォルダにあるもの。
- ソースを IDEA の
Build > Build Project
でコンパイルすると再読込される
IDE から Run > Debug
で io.ktor.server.netty.DevelopmentEngine
を実行する
build.gradle を編集する