持续创作,加速成长!这是我参与「掘金日新计划 · 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:
- 官网:javalin.io/
- GitHub: github.com/javalin/jav…
特点:
- 只有极少的概念需要去理解,无需拓展任何类和极少数的实现接口
- 基于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/
这样一个简单的类似Tomcat的服务就启动好了能够处理请求了,就是如此的简单。
同时还支持Websocket,这个可以去参照官网的例子,也是很简单。
4. 总结
javalin适合用于开发具有web功能但是又不是很重的那种应用,像 rocketmq-connect 项目中的 rocketmq-connect-runtime 就是这样的一类应用。同时如果平时想快速搭建一个web服务或者websocket的后台服务javalin也是一个不错的选择。
我是蚂蚁背大象,文章对你有帮助点赞关注我,文章有不正确的地方请您斧正留言评论~谢谢! 大家可以Follow我的GitHub mxsm