我做了一个代码生成器:Spring Boot + Angular 全自动构建

用 JSON Schema 一键生成全栈 CRUD 项目:Spring Boot + Angular 实践记录

🛠 项目地址:
github.com/xmyLydia/ra... 📦 示例输出:
github.com/xmyLydia/ra...


💡 背景:如何避免重复写 CRUD

在实际开发中,CRUD 是开发者最常见的需求之一。对于每个实体,我们往往需要重复写:

  • 后端:Entity、Repository、Controller、Service...
  • 前端:Module、Service、表格页面、表单页面...
  • 部署上线前,还需要把代码结构整理清晰

这些工作虽然有套路,但非常消耗时间和精力。

因此,创建一个工具来通过 JSON schema 自动生成前后端结构,成了一个非常有价值的尝试。


🧠 项目简介:rapid-crud-generator

这个工具的目标是:从 JSON schema 出发,自动生成 Spring Boot + Angular 项目结构,并打包为 zip 文件,一键下载即可运行。

🎯 输入:JSON schema

支持用户上传类似以下格式的 schema:

json 复制代码
{
  "User": {
    "id": "Long",
    "username": "String",
    "email": "String"
  },
  "Product": {
    "id": "Long",
    "title": "String",
    "price": "Double"
  }
}

📦 输出结构:

解压后的文件结构如下:

lua 复制代码
example-output/
├── backend/
│   ├── controller/
│   ├── entity/
│   └── repository/
└── frontend/
    ├── angular.json
    ├── package.json
    └── src/app/
        ├── user/
        ├── product/
        ├── app.module.ts
        └── app.component.html

🔧 技术实现

🔹 后端代码生成

使用 FreeMarker 模板引擎,根据 JSON schema 自动生成:

  • Entity
  • Repository
  • Controller

并保存到 output/backend/ 目录中。

🔹 前端代码生成

自动生成 Angular 的:

  • Module
  • Component(包含 Table 页面)
  • Service

写入到 output/frontend/src/app/,并自动更新 app.module.tsapp-routing.module.ts,支持直接运行。

🔹 一键打包 zip

通过 Java 将 frontend 和 backend 结构合并,打包为 zip 提供下载。


🧪 踩坑记录

❌ FreeMarker 模板加载失败

一开始在模板加载路径上遇到了 TemplateNotFoundException,原因是模板未正确打包进 target/classes。最终通过 mvn clean install + 使用 setClassLoaderForTemplateLoading 解决。

❌ Angular 类型系统报错

前端自动生成的代码中,TypeScript 类型推断导致 Object 不能赋值为 any[]。最终在模板中显式指定 any[] 类型解决。

❌ IntelliJ 无法运行 Spring Boot

由于缺乏 Run Config,一开始 @SpringBootApplication 无法识别。通过手动创建启动类并设置 main 方法路径解决。


✅ 当前功能(v0.1.0)

  • ✅ 支持多个实体的 JSON schema 输入
  • ✅ 自动生成后端 + 前端完整代码
  • ✅ TypeScript 类型兼容,Angular 可直接运行
  • ✅ 支持一键 zip 下载,解压即用
  • ✅ README + 示例 schema + 示例输出均已整理

🔮 后续计划(v0.2.0)

  • 🧠 AI Prompt 输入:通过自然语言描述自动生成 schema
  • 🌍 OpenAPI 支持:支持导入 Swagger 文件生成结构
  • 🧩 模板插件机制:支持扩展 DTO、权限、分页等模块
  • 🎨 Web UI 版本:提供在线编辑 schema 和实时预览功能

🧩 使用方式

  • 克隆项目后运行 Spring Boot 服务
  • 使用 Postman / curl 发送 JSON schema 到 /api/generate
  • 系统将生成代码并打包为 zip,可直接运行或扩展

详见 GitHub 仓库中的使用说明和 README 文档。


⭐ 项目地址

👉 GitHub:
github.com/xmyLydia/ra...

欢迎 Star ⭐、Fork 🍴、提交 Issue 或贡献你的想法!

相关推荐
止语Lab1 小时前
好的 DX 不等于少写代码——三种语言的摩擦力设计课
后端
吃饱了得干活1 小时前
别再手动解析 LLM 输出了!LangChain 四种结构化输出方案对比
后端·python·langchain
程序员天天困1 小时前
Arthas trace 命令怎么用?一行定位最慢那行代码
jvm·后端
Huiturn1 小时前
GPT 5.6 连续编码 10 小时,纯 Python 啃下 Word 二进制格式——doc2docx 实现拆解
后端
用户298698530141 小时前
Python 实现 Excel 与 Markdown 互转的实用指南
后端·python·excel
用户77283104908401 小时前
krono-job:零侵入、单二进制交付的分布式任务调度平台(开源)
后端
Conan在掘金1 小时前
鸿蒙报错速查:Function lacks ending return statement,返回路径漏 return 就炸,根因 + 真解法
后端
人间凡尔赛2 小时前
AI-Native 云原生架构:2026 年从容器编排到智能体编排的范式革命
后端·云原生·架构
IT_陈寒2 小时前
Vue的响应式让我加班到凌晨3点,原来问题出在这
前端·人工智能·后端
卷无止境2 小时前
提升 Python 代码健壮性的方法大盘点
后端·python