不止 Spring!GitHub 上这 5 大框架助你开发高性能微服务(附示例)

Scroll Down

以下是几个 GitHub 上优秀的 Spring 平替框架,并附上 快速入门 Java 代码


1. Quarkus(Spring Boot 平替,云原生首选)

  • GitHub:🔗 https://github.com/quarkusio/quarkus
  • 特点
    • 适用于 GraalVM & Kubernetes,比 Spring Boot 启动快占用内存低
    • 兼容 Spring API(Spring DI, Spring Web, Spring Data JPA),方便迁移;
    • 适合 微服务 / Serverless 场景。

快速入门(Hello World)

import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;

@Path("/hello")
public class HelloResource {
    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String hello() {
        return "Hello, Quarkus!";
    }
}

运行方式

mvn quarkus:dev

访问 http://localhost:8080/hello 看到 "Hello, Quarkus!"


2. Micronaut(编译时 AOP,轻量依赖注入)

快速入门(REST API)

import io.micronaut.http.annotation.Controller;
import io.micronaut.http.annotation.Get;

@Controller("/hello")
public class HelloController {
    @Get
    public String hello() {
        return "Hello, Micronaut!";
    }
}

运行方式

mvn mn:run

访问 http://localhost:8080/hello 看到 "Hello, Micronaut!"


3. Javalin(超轻量 Web 框架,Spring Web 替代)

  • GitHub:🔗 https://github.com/javalin/javalin
  • 特点
    • 仅 5MB,基于 Jetty,比 Spring Boot Web 更快、更轻
    • 适合 REST API、Serverless 开发;
    • 支持 WebSockets / OpenAPI / JWT

快速入门(Hello World API)

import io.javalin.Javalin;

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

运行后访问

http://localhost:7000/hello

4. Helidon(Oracle 出品,Spring Cloud 替代)

  • GitHub:🔗 https://github.com/oracle/helidon
  • 特点
    • Oracle 官方出品,支持 MicroProfile,比 Spring Cloud 更轻量
    • 提供两种模式:
      • Helidon MP(类 Spring Boot)
      • Helidon SE(响应式,类似 Netty)。
    • 原生 GraalVM 支持,适合 云原生微服务

快速入门(REST API)

import io.helidon.webserver.ServerRequest;
import io.helidon.webserver.ServerResponse;
import io.helidon.webserver.Service;
import io.helidon.webserver.Routing;

public class HelloService implements Service {
    @Override
    public void update(Routing.Rules rules) {
        rules.get("/hello", this::sayHello);
    }

    private void sayHello(ServerRequest req, ServerResponse res) {
        res.send("Hello, Helidon!");
    }
}

运行方式

mvn package
java -jar target/helidon-quickstart-se.jar

访问:

http://localhost:8080/hello

5. Vert.x(Spring WebFlux 替代,响应式开发)

  • GitHub:🔗 https://github.com/eclipse-vertx/vert.x
  • 特点
    • 基于 Netty,支持 异步非阻塞编程
    • 更高吞吐量,适用于 WebSocket、流式数据
    • 内存占用低,比 Spring WebFlux 更快

快速入门(异步 HTTP 服务器)

import io.vertx.core.AbstractVerticle;
import io.vertx.core.Vertx;

public class HelloVertx extends AbstractVerticle {
    @Override
    public void start() {
        vertx.createHttpServer()
             .requestHandler(req -> req.response().end("Hello, Vert.x!"))
             .listen(8080);
    }

    public static void main(String[] args) {
        Vertx vertx = Vertx.vertx();
        vertx.deployVerticle(new HelloVertx());
    }
}

运行后访问

http://localhost:8080/

总结

框架 适用场景 主要优势 运行方式
Quarkus 云原生 / Serverless 启动快,内存低,兼容 Spring mvn quarkus:dev
Micronaut 轻量依赖注入 编译时 AOP,无反射 mvn mn:run
Javalin 轻量 Web API 仅 5MB,比 Spring Boot 更轻 直接运行 Java
Helidon 云原生 / 企业微服务 Oracle 官方,兼容 MicroProfile mvn package
Vert.x 高并发 Web 响应式编程,基于 Netty 直接运行 Java

选择建议

  1. 如果想替代 Spring Boot,并支持 GraalVMQuarkus / Micronaut
  2. 如果想替代 Spring Web,做超轻量 APIJavalin / Jooby
  3. 如果想替代 Spring Cloud,做云原生微服务Helidon
  4. 如果想替代 Spring WebFlux,做响应式开发Vert.x
  5. 如果是 Kotlin 项目KtorGitHub