Skip to content
LM20230311Public

About

Py2Spring | 一行命令,把 Flask/Django/FastAPI 项目秒转成 Spring Boot 3.x 工程:自动迁移 REST 端点、ORM、配置、依赖与单元测试,支持多版本 JDK/SB 矩阵,内置 Docker & K8s 云原生交付,未来可双向同步。

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Py2Spring

Py2Spring

一行命令,Python 工程秒变 Spring Boot。

License Python Java PRs Welcome

📖 Documentation |
🚀 Quick Start |
🛠️ Roadmap |
🤝 Contributing


🌌 愿景

让遗留 Python 工程拥有 Java 级工业强度——类型安全、百万级并发、云原生就绪——而成本只是一杯咖啡的时间。


✨ 核心能力

维度 Python → Spring Boot
框架 Flask / Django / FastAPI → Spring MVC / Spring WebFlux
ORM SQLAlchemy / Django ORM → Spring Data JPA / MyBatis
配置 .env / settings.py → application-{profile}.yml
依赖 requirements.txt → Maven pom.xml / Gradle build.gradle.kts
并发 GIL 受限 → Reactor / Virtual Thread(Project Loom)
部署 Gunicorn + Supervisor → Docker + Kubernetes + GraalVM Native Image

🚀 Quick Start

pip install py2spring
py2spring transform ./my-flask-app --out ./coffee-shop-sb --java 21 --spring 3.2

30 秒后,你将得到一个可直接 ./mvnw spring-boot:run 的 Java 项目,并包含:

  • 等价的 REST 端点(OpenAPI 3 规范自动生成)
  • 类型安全的 DTO / Entity(借助 MapStruct 自动映射)
  • 单元测试 & 集成测试骨架(JUnit 5 + Testcontainers)
  • GitHub Actions CI/CD(构建多架构 Docker 镜像并推送至 GHCR)

🧠 智能映射示例

PythonJava (Spring Boot)
@app.get("/orders/<id>")
def get_order(id: UUID):
    order = db.session.get(Order, id)
    if not order:
        abort(404)
    return order_schema.dump(order)
@GetMapping("/orders/{id}")
public OrderDto getOrder(@PathVariable UUID id) {
    return orderRepo.findById(id)
        .map(mapper::toDto)
        .orElseThrow(ResourceNotFoundException::new);
}

🛠️ Roadmap

里程碑 交付功能 时间线
v0.1 Flask → Spring Boot 3.x 2024 Q4
v0.2 Django / FastAPI 支持 2025 Q1
v0.3 多版本 JDK(8/11/17/21)& Spring Boot 2.x/3.x 矩阵 2025 Q2
v0.4 前端联动:自动迁移 React/Vue 路由至 Spring Boot + Vite 2025 Q3
v1.0 双向同步(Java → Python),实现混合团队无缝协作 2025 Q4

🔌 插件生态

py2spring plugin install mybatis-plus
py2spring plugin install sa-token   # 国产权限框架

插件市场持续开放,欢迎提交插件。


🧪 贡献指南

我们采用 RFC- style 提案:任何 >100 LOC 的变更需先提交 Py2Spring RFC。
开发环境一键启动:

git clone https://github.com/yourname/Py2Spring.git
make dev            # 自动拉起 Python 3.11 + Java 21 的 devcontainer
make test           # 全量单元 + 集成测试(含 200+ 真实开源项目样本)

🏆 致谢

灵感来源于:


📄 License

MIT © 2024 Py2Spring Contributors
我们站在巨人的肩膀上,也欢迎成为新的巨人。


一句话总结:
Py2Spring 不是简单的“翻译器”,而是一套面向云原生的、双向可同步的“语言无关中间件编译平台”——今天它把 Python 搬进 Java,明天它可以把任何语言搬进任何框架。

About

Py2Spring | 一行命令,把 Flask/Django/FastAPI 项目秒转成 Spring Boot 3.x 工程:自动迁移 REST 端点、ORM、配置、依赖与单元测试,支持多版本 JDK/SB 矩阵,内置 Docker & K8s 云原生交付,未来可双向同步。

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors