以下是几个 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,轻量依赖注入)
- GitHub:🔗 https://github.com/micronaut-projects/micronaut-core
- 特点:
- 编译时依赖注入(无反射),比 Spring Boot 更快、更轻量;
- 支持 GraalVM 原生镜像,适用于 Serverless、IoT;
- 内置 HTTP Client / Service Discovery。
快速入门(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 |
选择建议
- 如果想替代 Spring Boot,并支持 GraalVM → Quarkus / Micronaut
- 如果想替代 Spring Web,做超轻量 API → Javalin / Jooby
- 如果想替代 Spring Cloud,做云原生微服务 → Helidon
- 如果想替代 Spring WebFlux,做响应式开发 → Vert.x
- 如果是 Kotlin 项目 → Ktor(GitHub)