我做了一个代码生成器: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 或贡献你的想法!

相关推荐
小码哥_常1 天前
MyBatis-Plus:让数据库操作飞起来的神器
后端
2301_811274311 天前
基于SpringBoot的智能家居管理系统
spring boot·后端·智能家居
AI人工智能+电脑小能手1 天前
【大白话说Java面试题】【Java基础篇】第15题:JDK1.7中HashMap扩容为什么会发生死循环?如何解决
java·开发语言·数据结构·后端·面试·哈希算法
舒一笑1 天前
我把设备指纹生成逻辑拆开了:它到底凭什么区分不同设备?
后端·程序员·掘金技术征文
Nicander1 天前
多数据源下@transcation事务踩坑
java·后端
郑州光合科技余经理1 天前
同城O2O海外版二次开发实战:从支付网关到配送算法
开发语言·前端·后端·算法·架构·uni-app·php
sjsjsbbsbsn1 天前
大模型核心知识总结
java·人工智能·后端
Moment1 天前
2026 年,AI 全栈时代到了,前端简历别再只写前端技术了 🫠🫠🫠
前端·后端·面试
白晨并不是很能熬夜1 天前
【PRC】第 2 篇:Netty 通信层 — NIO 模型 + 自定义协议 + 心跳
java·开发语言·后端·面试·rpc·php·nio
zshs0001 天前
#从偶发无字幕到补偿探测链路:一次 B 站字幕导入问题的完整收敛过程
java·后端·重构