皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

Javalin 1.0.0 发布,Kotlin/Java 轻量级 Web 框架

Javalin 1.0.0 发布,Kotlin/Java 轻量级 Web 框架

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