不只有 Spring,这四款Java 基础开发框架同样值得关注!

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 这个框架。

  • 项目地址:GitHub - google/guice: Guice (pronounced 'juice') is a lightweight dependency injection framework for Java 11 and above, brought to you by Google.

  • 使用详解: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 地址:GitHub - javalin/javalin: A simple and modern Java and Kotlin web framework

  • 官网:Javalin - A lightweight Java and Kotlin web framework

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

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

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

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

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

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

  • Github 地址:GitHub - quarkusio/quarkus: Quarkus: Supersonic Subatomic Java.

  • 官方文档:Guides - Latest - Quarkus

  • 官网: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 地址:GitHub - eclipse-vertx/vert.x: Vert.x is a tool-kit for building reactive applications on the JVM

  • 官网:**https://vertx.io/*

  • Guice:轻量级依赖注入框架

  • Javalin:轻量级 Java 和 Kotlin Web 框架

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

  • Vert.x:构建响应式应用的工具集

文章转载自:JavaGuide

原文链接:https://www.cnblogs.com/javaguide/p/18159253

体验地址:引迈 - JNPF快速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流引擎_软件架构

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/581436.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

构建本地大语言模型知识库问答系统

MaxKB 2024 年 4 月 12 日,1Panel 开源项目组正式对外介绍了其官方出品的开源子项目 ——MaxKB(github.com/1Panel-dev/MaxKB)。MaxKB 是一款基于 LLM(Large Language Model)大语言模型的知识库问答系统。MaxKB 的产品…

Intelij Idea Push失败,出现git Authentication failed(验证失败)

目录 1、出现问题的原因 2、解决之法 1、出现问题的原因 能出现这种问题,最主要的原因是链接对上了,但用户验证失败了,即登录失败。 因为服务器转移或者换了git项目链接,导致你忘记了用户名密码,随意输入之后&…

P44,45 属性预处理,执行后游戏效果回调,附录指定区域内修改变量

这节课主要是怎么对Attribute进行在进行到游戏角色前先进行处理,以及游戏效果如何回调 AuraAttributeSet.h // Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h" #include "AttributeSet.h&…

如何禁用WordPress的自动更新(包括主题、插件和核心文件)

这几天发现我的一个网站突然打不开了,提示“此站点遇到了致命错误”,如图: 这个网站一直都是正常运行的,最近也没有过什么更新,按理说不应该会出现问题,我担心可能是主机方面做了什么调整导致,所以联系了Ho…

品鉴中的个人偏好:如何找到适合自己的红酒风格

品鉴红酒时,个人偏好起着至关重要的作用。不同的人对红酒的风格、口感和特点有着不同的喜好和需求。对于云仓酒庄雷盛红酒而言,如何找到适合自己的红酒风格,是品鉴过程中需要关注的问题。 首先,了解自己的口味和喜好是找到适合自己…

spi接口的基本概念、引脚定义及注意事项

目录 基本概念 引脚定义 注意事项 SPI(Serial Peripheral Interface)是一种同步串行接口技术,广泛应用于微控制器和各种外围设备之间的短距离通信。 基本概念 SPI接口允许微控制器以串行方式与一个或多个外围设备进行通信。它是一种高速、…

B端:销售投入远超研发投入,想让B端漂亮体验好,非常难。

足够的研发费用是确保B端系统研发体验好、品质佳的重要条件之一。在B端系统研发过程中,足够的研发费用可以用于以下方面: 1.人才投入: 招聘高素质的研发团队成员,包括开发工程师、测试工程师、产品设计师、运维工程师等&#xf…

【进程通信】利用管道创建进程池(结合代码)

文章目录 什么叫进程池进程池的优点 创建进程池代码实现: 什么叫进程池 我们知道,一个进程创建子进程通常是为了让这个子进程去为它完成某个任务。例如我们使用的指令,其实就是bash进程创建子进程让子进程去执行的。但是我们需要考虑这样一个…

RLDP协议原理与应用

RLDP概述 l RLDP全称是Rapid Link Detection Protocol(快速链路检测协议),是锐捷网络自主开发的,用于快速检测以太网链路故障的链路协议。 l 一般的以太网链路检测机制都只是利用物理连接的状态,通过物理层的自动协…

React | classnames

classnames 这个库在我们的项目中有大量的使用到,它不仅很实用,还非常好用,但还有人不知道这个库,我真的是十分心痛。 通过 classnames,我们可以给组件设置多个 className,还可以根据需要动态设置 classNa…

机器学习中的CatBoost算法

我们经常遇到包含分类特征的数据集,为了将这些数据集拟合到Boosting模型中,我们对数据集应用各种编码技术,例如One-Hot编码或标签编码。但是应用One-Hot编码会创建一个稀疏矩阵,这有时可能导致模型的过拟合,我们使用Ca…

Oracle中rman使用记录

最近在项目中,遇到使用RMAN的操作来恢复数据库中某个时间归档日志,RMAN的原理和理解,网友们百度了解一下。我重点将实操部分了。直接上实验环节,让网友更懂。(特别提醒:我是1:1用VMware克隆数据库进行RMAN还…

分布式与一致性协议之Paxos算法(三)

Paxos算法 兰伯特关于Multi-Paxos的思考 领导者 我们可以通过引入领导者(Leader)节点来解决第一个问题。也就是说将领导者节点作为唯一提议者,如图所示。这样就不存在多个提议者同时提交提案的情况,也就不存在提案冲突的情况了。这里补充一点:在论文中…

开发规范:API安全

开发规范:API安全 API是现代移动、SaaS和web应用程序的关键组成部分,可以应用在面向客户、合作伙伴和内部应用程序中。API可以暴露应用程序逻辑和敏感数据。不安全的API很容易成为黑客攻击的目标,使他们能够访问安全的服务器或网络。攻击者可…

NXP i.MX8系列平台开发讲解 - 3.9 Linux PCIe协议相关介绍(二)

目录 1. PCIe 传输层协议 2. TLP介绍 2.1 TLP包格式 2.2 TLP包的种类 2.3 TLP 包传输例子 2.4 TLP 路由规则 根据上一章的知识,对于PCIe的发展和基础知识有了大概了解,本章节将会讲解PCIe的一些工作原理,使用的协议,通信交互…

挑战一周完成Vue3项目Day2:路由配置+登录模块+layout组件+路由鉴权

一、路由配置 经过分析,项目一共需要4个一级路由:登录(login)、主页(home)、404、任意路由(重定向到404)。 1、安装路由插件 pnpm install vue-router 2、创建路由组件 在src目…

dremio数据湖sql行列转换及转置

1、行转列 (扁平化) 数据准备 表 aa 1.1 cross join unnest 在Dremio中,UNNEST 函数用于将数组或复杂类型的列(如JSON、Map或Array类型)中的值“炸裂”(分解)成多行. with aa as ( select 上海 as city, ARRAY[浦东…

2024程诺申论突击理论刷题班

2024程诺申论突击理论刷题班,为备考者提供了系统而高效的申论学习平台。在这个班里,程诺老师以其深厚的理论功底和丰富的教学经验,引导我们深入理解申论的本质和技巧。刷题环节精心设计,让我们在实战中巩固知识,提升能…

Professional CUDA C Programming

2023/4/28 1.使用nvfrof时,报错 解决方法: 将路径 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4\extras\CUPTI\lib64 下的文件cupti64_2020.2.0.dll复制到路径 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\bin下即可。 2…

Innodb底层原理与Mysql日志机制到底怎么个事???

在学完Innodb底层原理与Mysql日志机制,自己进行总结,画了一张脑图,思路清晰许多 希望对大家也能有点帮助
最新文章