Java 开发不只有 Spring ,今天给大家推荐几个同样优秀的 Java 基础开发框架,为日常项目开发提供更多的选择。答应我,请不要再叫我 Spring 小子了,好吗?
项目概览:
- Guice:轻量级依赖注入框架
- Javalin:轻量级 Java 和 Kotlin Web 框架
- Quarkus:云原生时代高性能 Java 框架
- Vert.x:构建响应式应用的工具集
Guice:轻量级依赖注入框架
Guice(发音为 "juice") 是 Google 开源的一个轻量级依赖注入框架,你可以将其看作是只提供依赖注入功能的 Spring 。不过,相比于 Spring 提供的依赖注入功能,Guice 设计上更加轻量,专注于通过注解提供依赖注入,尽量避免使用 XML。
Guice 在某些情况下非常实用,就比如说我们的项目只需要使用依赖注入,不需要 AOP 等功能特性,也不需要 Spring 强大的生态。
Guice 的 Hello World 示例如下:
我之前发表的 一篇文章 的的评论区就有一个民宿外企的小伙伴说自己用的就是 Guice 这个框架。
- 项目地址: https://GitHub.com/google/guice
- 使用详解: https://www.cnblogs.com/throwable/p/15925396.html
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/
Quarkus:云原生时代高性能 Java 框架
Quarkus(夸克斯) 是 RedHat 在 2018 年开源的一款专为云原生开发设计的 Java 框架,与 Kubernetes 紧密结合,可以提高构建微服务、无服务和基于云的应用程序的开发效率。
Quarkus 的启动速度非常快(为 GraalVM 量身定制),可以很方便集成 Docker 和 Kubernetes 。
Quarkus 和其他同类型框架的内存占用和首次响应时间对比如下:
相比较于 Spring Boot,Quarkus 更适合微服务、Serverless 或云原生应用,它提供了许多有利的特性。
- Github 地址: https://github.com/quarkusio/quarkus
- 官方文档: https://quarkus.io/guides/
- 官网: https://quarkus.io
Vert.x:构建响应式应用的工具集
Vert.x 是 Eclipse 基金会开源的一款针对 JVM 设计的异步、事件驱动的应用框架。它支持多种编程语言,包括 Java、JavaScript、Groovy、Kotlin 和 Scala。
该框架采用响应式编程和函数式编程范式,特别适合于处理大规模并发连接、高吞吐量以及低延迟的应用场景。Vert.x 的非阻塞和事件驱动的特性使它成为开发高性能、可扩展且易于维护的微服务和网络应用的理想选择。
不过,Vert.x 有一定的开发和学习成本,需要转变常规的编程思维方式,对团队成员的技术能力要求还是非常高的!
Vert.x 版本的 HelloWorld 如下:
import io.vertx.core.AbstractVerticle;
public class Server extends AbstractVerticle {
public void start() {
vertx.createHttpServer().requestHandler(req -> {
req.response()
.putHeader("content-type", "text/plain")
.end("Hello World");
}).listen(8080);
}
}
- Github 地址: https://github.com/eclipse-vertx/vert.x
- 官网: https://vertx.io/