极简风格的web框架-javalin

1,248 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天,点击查看活动详情

1. 背景

在研究 rocketmq-connect 项目的时候发现了一个很奇怪的事情,当时发现这个项目支持Restful接口但是又没有看到有 Tomcat的相关代码(包括内嵌的Tomcat)。这个就很奇怪了,当时就想不会是自己写了一个Restful处理服务?然后就通过项目中有一个设置http port的参数找到这样两行代码:

Javalin app = Javalin.create();
app = app.start(connectController.getConnectConfig().getHttpPort());

看到这段代码的第一反应:这能启动一个Http服务? javalin又是什么?下面就来看一下这个极简风的web服务器 Javalin。

2. javalin介绍

首先看一下官网给的说明:A simple web framework for Java and Kotlin

简单 的介绍同时也说明了javalin使用简单:

  • 一个web框架
  • 支持Java和Kotlin平台

Tips:

特点:

  • 只有极少的概念需要去理解,无需拓展任何类和极少数的实现接口
  • 基于Jetty构建,仅仅几千行代码
  • 其他Java和Kotlin web框架通常为每种语言提供一个版本。Javalin正在考虑互操作性,应用程序在Java和Kotlin中是以相同的方式构建的。

一句话总结就是:本身代码量少简单、使用极其简单的一个web框架

3. javalin使用

maven:

<dependency>
    <groupId>io.javalin</groupId>
    <artifactId>javalin</artifactId>
    <version>4.6.4</version>
</dependency>

只需要导入一个依赖。接下来我们写一个简单的例子看看是否能够正常的启动和使用。

样例代码:

public class JavalinExample {
    public static void main(String[] args) {
        Javalin javalin = Javalin.create().start(8080);
        javalin.get("/", ctx->ctx.result("66666"));
    }
}

运行代码成功后在浏览器输入:http://localhost:8080/

image.png

这样一个简单的类似Tomcat的服务就启动好了能够处理请求了,就是如此的简单。

同时还支持Websocket,这个可以去参照官网的例子,也是很简单。

4. 总结

javalin适合用于开发具有web功能但是又不是很重的那种应用,像 rocketmq-connect 项目中的 rocketmq-connect-runtime 就是这样的一类应用。同时如果平时想快速搭建一个web服务或者websocket的后台服务javalin也是一个不错的选择。

我是蚂蚁背大象,文章对你有帮助点赞关注我,文章有不正确的地方请您斧正留言评论~谢谢! 大家可以Follow我的GitHub mxsm