Java 开发不只有 Spring ,今天给大家推荐几个同样优秀的 Java 基础开发框架,为日常项目开发提供更多的选择。答应我,请不要再叫我 Spring 小子了,​好吗?

项目概览:

  1. Guice:轻量级依赖注入框架
  2. Javalin:轻量级 Java 和 Kotlin Web 框架
  3. Quarkus:云原生时代高性能 Java 框架
  4. Vert.x:构建响应式应用的工具集

Guice:轻量级依赖注入框架

Guice(发音为 "juice") 是 Google 开源的一个轻量级依赖注入框架,你可以将其看作是只提供依赖注入功能的 Spring 。不过,相比于 Spring 提供的依赖注入功能,Guice 设计上更加轻量,专注于通过注解提供依赖注入,尽量避免使用 XML。

Guice 在某些情况下非常实用,就比如说我们的项目只需要使用依赖注入,不需要 AOP 等功能特性,也不需要 Spring 强大的生态。

Guice 的 Hello World 示例如下:

我之前发表的一篇文章的的评论区就有一个民宿外企的小伙伴说自己用的就是 Guice 这个框架。

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 在开发一些简单的项目上也是非常不错!

Quarkus:云原生时代高性能 Java 框架

Quarkus(夸克斯) 是 RedHat 在 2018 年开源的一款专为云原生开发设计的 Java 框架,与 Kubernetes 紧密结合,可以提高构建微服务、无服务和基于云的应用程序的开发效率。

Quarkus 的启动速度非常快(为 GraalVM 量身定制),可以很方便集成 Docker 和 Kubernetes 。

Quarkus 和其他同类型框架的内存占用和首次响应时间对比如下:

相比较于 Spring Boot,Quarkus 更适合微服务、Serverless 或云原生应用,它提供了许多有利的特性。

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);
}
}

不只有 Spring,这四款 Java 基础开发框架同样值得关注! 审核中的更多相关文章

  1. 四、Android学习第四天——JAVA基础回顾(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 四.Android学习第四天——JAVA基础回顾 这才学习Android的 ...

  2. 第4节:Java基础 - 必知必会(中)

    第4节:Java基础 - 必知必会(中) 本小节是Java基础篇章的第二小节,主要讲述抽象类与接口的区别,注解以及反射等知识点. 一.抽象类和接口有什么区别 抽象类和接口的主要区别可以总结如下: 抽象 ...

  3. Solon 1.5.29 发布,轻量级 Java 基础开发框架

    本次版本主要变化: 增加 captcha-solon-plugin 插件(提供滑块验证与选文字验证能力) 插件 sa-token-solon-plugin,升级 sa-token 为 1.26.0 插 ...

  4. 轻量级 Java 基础开发框架,Solon & Solon Cloud 1.5.40 发布

    Solon 已有120个生态扩展插件,此次版本以细节打磨为主: 增加 mybatisplus-solon-plugin 插件 //至此,Solon 已完成国内外主流的5个ORM框架插件适配 插件 so ...

  5. 轻量级 Java 基础开发框架,Solon & Solon Cloud 1.5.48 发布

    Solon 已有120个生态扩展插件,此次更新主要为细节打磨: 增加 solon.serialization,做为序列化的基础插件 优化 所有Json序列化插件,使之可方便定制类型序列化 public ...

  6. 轻量级 Java 基础开发框架,Solon & Solon Cloud 1.5.52 发布

    Solon 已有120个生态扩展插件,此次更新主要为细节打磨: 插件 mybatis-solon-plugin 增加 mappers 单行配置支持 之前的多行模式: mybatis.db1: type ...

  7. Solon & Solon Cloud 1.5.62 发布,轻量级 Java 基础开发框架

    Solon 已有120个生态扩展插件,此次更新主要为细节打磨,且对k8s和docker-compose更友好: 1.插件 solon.coud ,事件总线增加支持本地同主题多订阅模式(以支持同服务内, ...

  8. Java基础扫盲系列(-)—— String中的format

    Java基础扫盲系列(-)-- String中的format 以前大学学习C语言时,有函数printf,能够按照格式打印输出的内容.但是工作后使用Java,也没有遇到过格式打印的需求,今天遇到项目代码 ...

  9. 学习Spring必学的Java基础知识(1)----反射(转)

    引述要学习Spring框架的技术内幕,必须事先掌握一些基本的Java知识,正所谓"登高必自卑,涉远必自迩".以下几项Java知识和Spring框架息息相关,不可不学(我将通过一个系 ...

  10. 学习Spring必学的Java基础知识(1)----反射

    引述要学习Spring框架的技术内幕,必须事先掌握一些基本的Java知识,正所谓"登高必自卑,涉远必自迩".以下几项Java知识和Spring框架息息相关,不可不学(我将通过一个系 ...

随机推荐

  1. 【Docker】Windows将docker下载的镜像存放到其他盘

    1.在D盘创建一个存放docker虚拟机的文件夹,如下面图中所示: 2.创建好以后,找到桌面右下角的docker图标,在上面点右键,选择settings,打开docker的设置界面. 3.然后在doc ...

  2. EventSource JS实时通信

    前台 html <script type="text/javascript"> if (typeof (EventSource) != "undefined& ...

  3. Csharp中表达式树

    Csharper中的表达式树 这节课来了解一下表示式树是什么? 在C#中,表达式树是一种数据结构,它可以表示一些代码块,如Lambda表达式或查询表达式.表达式树使你能够查看和操作数据,就像你可以查看 ...

  4. AXI4从机总线分析验证之读取寄存器值

    AXI4从机总线分析验证之读取寄存器值 1.实验目的 利用前面所学的AXI4总线协议的理论分析,验证如何将一个PL的输入信号通过AXI发送到PS端.大致思路就是取一个按键,信号接入自建的AXI4的IP ...

  5. FineReport 常用日期公式

    获取当前月份最后一天 DATEINMONTH(today(), -1) 获取当前月份第一天 DATEINMONTH(today(), 1) 获取上个月最后一天 DATEINMONTH(MONTHDEL ...

  6. CI和自动化测试的结合(jenkins的搭建和使用)

    CI持续集成是一种思想,具体实现是通过jenkins持续集成工具去实现的. Jenkins的安装和配置(war包启动) 安装jenkins的方式有两种: 方式一:通过下载安装包安装,jenkins.m ...

  7. 数据库知识 DDL/DML/DCL

    DDL DDL的概述 DDL(Data Definition Language 数据定义语言)用于操作对象和对象的属性,这种对象包括数据库本身,以及数据库对象,像:表.视图等等,DDL对这些对象和属性 ...

  8. Java ArrayList 与 LinkedList 的灵活选择

    Java ArrayList Java ArrayList 类是一个可变大小的数组,位于 java.util 包中. 创建 ArrayList import java.util.ArrayList; ...

  9. chatGPT教你学sql的事务

    事务的隔离级别 事务的隔离级别是指多个并发事务之间相互隔离的程度,主要是为了解决并发事务带来的一致性问题,它的主要作用是控制数据库中事务的可见性和可重复读. 在 SQL 标准中,定义了四种事务隔离级别 ...

  10. k8s 深入篇———— k8s 的本质[四]

    前言 简单整理一下k8s的本质. 正文 首先,Kubernetes 项目要解决的问题是什么? 编排?调度?容器云?还是集群管理? 实际上,这个问题到目前为止都没有固定的答案.因为在不同的发展阶段,Ku ...