Javalin 是一个非常轻量级的 Kotlin 和 Java 网络框架,支持 WebSockets、HTTP2 和异步请求。Javalin 的主要目标是简单性、出色的开发人员体验以及 Kotlin 和 Java 之间一流的互操作性。
Javalin 更像是一个库而不是一个框架。一些关键点:
- 你不需要扩展任何东西
- 没有@Annotations
- 没有反射
- 没有其他魔法;只是代码。
Maven:
<dependency> <groupId>io.javalin</groupId> <artifactId>javalin</artifactId> <version>4.0.0</version> </dependency>
|
java:
import io.javalin.Javalin;
public class HelloWorld { public static void main(String[] args) { Javalin app = Javalin.create().start(7000); app.get("/", ctx -> ctx.result("Hello World")); } }
|
Kotlin:
import io.javalin.Javalin
fun main() { val app = Javalin.create().start(7000) app.get("/") { ctx -> ctx.result("Hello World") } }
|
Javalin 有一个 OpenAPI (Swagger) 插件。文档可以通过 DSL 和注释启用,Javalin 可以使用 SwaggerUI 和 ReDoc 呈现文档。
启动类似SpringBoot的微服务API:
val app = Javalin.create { config -> config.defaultContentType = "application/json" config.autogenerateEtags = true config.addStaticFiles("/public") config.asyncRequestTimeout = 10_000L config.dynamicGzip = true config.enforceSsl = true }.routes { path("users") { get(UserController::getAll) post(UserController::create) path(":user-id") { get(UserController::getOne) patch(UserController::update) delete(UserController::delete) } ws("events", userController::webSocketEvents) } }.start(port)
|