← 返回文章列表

个人站为什么选 FastAPI 而不是 Spring Boot

不是 Spring Boot 不好,是这台服务器养不起 JVM——一台已经跑着仨服务的云主机,内存账要精打细算。

先说结论

这个站(就是你现在看的)用 FastAPI + Jinja2 + SQLite。不是 Spring Boot 不好——是我那台腾讯云养不起 JVM。

内存账

服务器上已经跑着 Caddy、AI 生图服务、知识库网关。再驻一个 JVM 进去,300MB+ 起步;FastAPI 全家桶?50MB 打住。个人站的流量,SQLite 单文件都嫌快。

项 Spring Boot FastAPI
常驻内存 300MB+ ~50MB
冷启动 秒级 毫秒级
单文件部署 jar + JDK venv + py

Jinja2 直出的另一个理由

个人内容站,SEO 和打开速度是命。Jinja2 模板直出 HTML,搜索引擎来了就能读,不用搞 SSR、不用搞预渲染。

什么时候该换回 Spring Boot

真要做多租户、高并发、复杂事务的业务系统,Java 生态没得说。选型没有信仰,只有场景。 我的场景是:一台服务器、一个管理员、读多写少——答案很明显。

# 全站首页的核心就这么朴实
@app.get("/")
def home(request: Request, db: Session = Depends(get_db)):
    ...
    return templates.TemplateResponse("home.html", ctx)