Javalin 已发布 1.0.0 稳定版,该版本相比于之前的 0.5.X 并未有重大变化,可直接兼容升级。发行说明
Javalin 是用 Kotlin 和 Java 编写的一个非常轻量级的 Web 框架,受 Sparkjava 和 koa.js 的启发。
Javalin 基于 Kotlin 编写,其中一些功能接口采用 Java 开发,对 Kotlin 和 Java 的开发人员能提供几乎相同的愉悦体验。
Javalin 主要有以下特性:
- 易用:不用提前学习任何概念就可以开始使用
- 一致的API:所有的处理程序和映射器在Context (ctx)中都是无效的。
- Kotlin和Java拥有几乎完全相同的API
- 是框架也是库:无需扩展任何功能
- 拥有完全可定制的嵌入式服务器(Jetty)
- JSON对象映射
- 通过AccessManager 接口简单的按端点验证
- 简单的静态文件处理
- 生命周期事件
- CookieStore,一种简单的用来序列化的方法和存储在cookie中的对象。
- 模板渲染
- Markdown渲染
示例:
Hello World
kotlin
fun main(args: Array<String>) { val app = Javalin.start(7000) app.get("/") { ctx -> ctx.result("Hello World") } }
Java
public static void main(String[] args) { Javalin app = Javalin.start(7000); app.get("/", ctx -> ctx.result("Hello World")); }
API structure and server config
kotlin
val app = Javalin.create().apply { enableStaticFiles("/public") enableStandardRequestLogging() port(port) }.start() app.routes { path("users") { get(UserController::getAllUserIds) post(UserController::createUser) path(":user-id") { get(UserController::getUser) patch(UserController::updateUser) delete(UserController::deleteUser) } } }
Java
Javalin app = Javalin.create() .enableStaticFiles("/public") .enableStandardRequestLogging() .port(port) .start(); app.routes(() -> { path("users"(() -> { get(UserController::getAllUserIds); post(UserController::createUser); path(":user-id"(() -> { get(UserController::getUser); patch(UserController::updateUser); delete(UserController::deleteUser); }); }); });
转自 http://www.oschina.net/news/90475/javalin-1-0-0-stable