查看原文
其他

一个比 Spring 更轻量级的 Web 框架!!!微软、红帽都在用

Guide哥 JavaGuide 2022-10-28

《Java 面试指北》来啦!这是我这两年利用业余时间完成的 JavaGuide 开源版的补充。

你好,我是 Guide!这里是 JavaGuide 的「优质开源项目推荐」第 5 期,每一期我都会精选 5 个高质量的 Java 开源项目推荐给大家。既然立了 Flag ,那就不能说说而已!

前 4 期的项目推荐 👉:

这 5 个开源项目已经被收录进了 awesome-java (非常棒的 Java 开源项目集合,找 Java 项目必备)。

  • Github 地址:https://github.com/CodingDocs/awesome-java
  • Gitee 地址:https://gitee.com/SnailClimb/awesome-java

javalin:轻量级 Java 和 Kotlin Web 框架

javalin 是一个轻量级的 Web 框架,同时支持 Java 和 Kotlin,被微软、红帽、Uber 等公司使用。

javalin 类似于 Spring ,有如下特点:

  • 轻量级
  • 简单易用
  • 运行在 Web 服务器 Jetty 之上
  • 同时支持阻塞和异步编程模型
  • ......

下面几行代码即可使用 javalin 完成一个简单的 Hello World 接口:

import io.javalin.Javalin;

public class HelloWorld {
    public static void main(String[] args) {
        Javalin app = Javalin.create().start(7070);
        app.get("/", ctx -> ctx.result("Hello World"));
    }
}

javalin 并不是为了取代 Spring ,而是为了丰富 Java Web 框架生态,Spring 的生态无敌,javalin 在开发一些简单的项目上也是非常不错!

  • Github 地址:https://github.com/tipsy/javalin
  • 官网:https://javalin.io/

GitHub API for Java:用于访问 Github 的 Java API

顾名思义,GitHub API for Java 定义了一系列用于访问 Github 的 Java API。

举个例子,你可以使用这个仓库连接到自己的 Github 账户并进行相关操作(如创建/删除仓库、获取账号信息)。

这个库支持多种认证方式连接 Github:用户名和密码(不推荐)、 Personal access token、JWT 、GitHub App installation token。

比如说我们有了 Personal access token 之后,下面一行代码就可以直接连接上 Github 了:

GitHub github = new GitHubBuilder().withOAuthToken("my_personal_token").build();

并且,这个库支持替换 HTTP 客户端。

// 将 HTTP 客户端替换为 OkHttp
Cache cache = new Cache(cacheDirectory, 10 * 1024 * 1024); // 10MB cache
GitHub gitHub = GitHubBuilder.fromEnvironment()
    .withConnector(new OkHttpConnector(new OkUrlFactory(new OkHttpClient().setCache(cache))))
    .build();

关于 Github REST API 的详细介绍,你可以参考REST API 入门指南 - 官方文档。

  • Github 地址:https://github.com/hub4j/github-api
  • 官网:https://github-api.kohsuke.org/

Thumbnailator:图像处理工具库

Thumbnailator 是一个图像处理工具库,主要功能是缩放图像、添加水印、旋转图像、调整图片大小以及区域裁剪。

Thumbnailator 使用起来非常简单,几行代码即可实现对图片的处理。比如说我们要将某个目录下的图片统一调整为 640 px x 480 px 的最大尺寸,下面一行代码就可以了:

Thumbnails.of(new File("path/to/directory").listFiles())
    .size(640480)
    .outputFormat("jpg")
    .toFiles(Rename.PREFIX_DOT_THUMBNAIL);

Github 地址:https://github.com/coobird/thumbnailator#/

相关文章推荐:两天两夜,1M 图片优化到 100kb!

Kafdrop:Kafka 可视化工具

Kafdrop 是一款基于 Spring Boot +FreeMarker 的 Kafka 可视化工具,支持查看 Kafka 代理(可以看作是一个独立的 Kafka 实例)、主题、消费者组,安全配置信息(ACLs),支持创建主题,。

这个项目的核心代码并不多,对于想要学习 Spring Boot 和 Kafka 的小伙伴来说,这就是一个非常好的项目。

Github 地址:https://github.com/obsidiandynamics/kafdrop

nginx-tutorial:Nginx 极简教程

nginx-tutorial 是一系列 Nginx 极简教程,包含 HTTP 反向代理、HTTPS 反向代理、负载均衡、静态站点、文件服务器搭建等实战内容。

  • Github 地址:https://github.com/dunwu/nginx-tutorial
  • 在线阅读:https://dunwu.github.io/nginx-tutorial/

你可以配合《深入理解 Nginx(第 2 版)》 这本书食用。

··········  END  ··············

近期文章精选 :

    如果本文对你有帮助的话,欢迎点赞&在看&分享,这对我继续分享&创作优质文章非常重要。感谢🙏🏻

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存