跳到主要内容

SPARROW CODER / 后台管理系统代码生成器

sparrow-coder

从一个 PO 类,
到一套业务工程。

基于整洁架构,将你定义的 PO 类转化为符合企业包规范的后端代码与前端页面。纯模板与元数据驱动,让重复开发止于模型。

  • 无需 AI 参与
  • 前后端分离
  • 代码可继续开发
model → application
定义业务模型UserExample.java
PO
sparrow-coder模板 + 元数据

生成两端代码

Spring Boot整洁架构后端sparrow-example
React / Next.js后台列表与表单react-next-admin
定义一次模型 · 输出前后端代码

01 / CAPABILITIES

重复的交给模板,业务的留给你。

Controller、Service、DAO、Mapper、列表与表单,都从同一份业务模型出发。

一次生成,覆盖两端

以 PO 类为输入,同时生成后端分层代码和 React / Next.js 管理页面,减少结构相似的 CRUD 编写。

架构与规范,开箱即有

沿用整洁架构的职责划分与依赖倒置,按项目包名和模块前缀组织代码,保留业务扩展空间。

界面随配置而变

通过 column_configs 调整列展示、过滤、行菜单与状态命令,让生成的后台贴合实际业务。

02 / CLEAN ARCHITECTURE

清晰的分层,完整的起点。

后端以 sparrow-example 为脚手架,前端以 sparrow-js 内的 react-next-admin 为脚手架。两个独立工程,遵循同一套业务定义。

后端脚手架sparrow-example
前端脚手架react-next-admin
01

Adapter

接口入口与对象转换

02

Domain

领域逻辑与业务规则

03

Infrastructure

基础设施与接口实现

04

DAO

持久化接口与数据访问

按职责分层,以接口和依赖倒置组织协作,让领域逻辑与具体存储实现保持解耦。

Spring Boot + React / Next.js独立编译 · 分别启动

03 / WORKFLOW

从定义项目,到运行你的业务。

先下载属于自己的工程,再编写 PO、生成代码,最后回到工程中继续开发。

  1. 01

    定义项目,下载脚手架

    在「项目配置」中设置项目名称、中文名称、业务包名、前端项目名称、模块前缀、代码架构与脚手架,并按需开启国际化和父 module。通过 zip-download 下载自己的前后端业务工程。

  2. 02

    编译并启动业务工程

    后端执行 mvn clean package -Dmaven.test.skip=true,再通过 java -jar 启动对应模块产物。前端进入生成的前端目录,执行 npm install 和 npm run dev。两端独立编译、分别启动。

  3. 03

    在自己的业务包中编写 PO

    在刚生成的业务工程中,参考父表 com.sparrow.coder.po.Department 与子表 com.sparrow.coder.po.UserExample。将示例复制到自己的 PO 包并修改包名,如 com.yourcompany.po。用 @Table、@Column 描述元数据,用 @ListDatasource(type = ListDatasourceType.TABLE, params = "t_department") 关联父表;不要直接使用官方示例类生成业务代码。

  4. 04

    一键生成两端代码

    回到 sparrow-coder,选择表并点击「生成代码」(/coder/generate.json)。根据 PO 元数据与模板,生成 DAO、Domain、Adapter、Infrastructure 各层代码,以及前端列表和表单页面,全程无需 AI。

  5. 05

    重新编译,运行生成结果

    回到业务工程,重新编译并启动后端与前端,让新增代码生效。在生成的架构基础上继续实现自己的业务逻辑。

  6. 06

    通过列配置调整界面

    在 t_table_config 的 column_configs 中配置列展示、过滤、行菜单与状态命令,按业务需要调整后台管理界面。父子表关系可自动生成下拉或关联控件。

04 / MODEL FIRST

关系与字段,直接写进模型。

通过 @Table、@Column 描述表与字段,通过 @ListDatasource 描述关联关系。模板读取这些元数据,生成对应代码与控件。

从部门到用户

Department 是父表,UserExample 是子表。departmentId 关联 t_department,自动生成下拉选择或关联控件。

Department1 → NUserExample
UserExample.java · 业务 PO 示例(省略 imports)
package com.yourcompany.po;

@Table(name = "t_user_example")
@Data
public class UserExample extends PO {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id", columnDefinition = "int COMMENT 'ID'")
    private Long id;

    @Column(name = "user_name", nullable = false,
            columnDefinition = "varchar(32) COMMENT '用户名'")
    private String userName;

    @Column(name = "department_id",
            columnDefinition = "int COMMENT '部门ID'")
    @ListDatasource(type = ListDatasourceType.TABLE,
            params = "t_department")
    private Long departmentId;
}

05 / QUICK START

准备好环境,开始第一次生成。

按顺序完成依赖安装、配置与启动。展开每一步查看命令,代码可直接复制并按本地环境调整。

JDK17+
Maven3.6+
MySQL5.7 / 8.x
Redis5+
Node.js18+

Node.js 仅用于运行前端项目。

01

克隆工程与脚手架

将依赖、前端工程和生成器放在 ~/workspace/sparrow 下,后端脚手架放在工作区根目录。

bash
mkdir -p ~/workspace/sparrow
cd ~/workspace/sparrow
git clone https://github.com/sparrowzoo/sparrow-shell.git
git clone https://github.com/sparrowzoo/sparrow-starter.git
git clone https://github.com/sparrowzoo/sparrow-file.git
git clone https://github.com/sparrowzoo/sparrow-passport-ddd.git
git clone https://github.com/sparrowzoo/sparrow-js.git
git clone https://github.com/sparrowzoo/sparrow-coder.git

cd ~/workspace
git clone https://github.com/sparrowzoo/sparrow-example.git

sparrow-example 与 sparrow 目录平级;react-next-admin 位于 sparrow-js 内。Node.js 仅在运行前端时需要。

02

按顺序安装依赖

先安装基础框架,再安装 Starter、文件服务与认证框架,最后编译 sparrow-coder。

bash
cd ~/workspace/sparrow/sparrow-shell
mvn clean install -Dmaven.test.skip=true
cd ../sparrow-starter
mvn clean install -Dmaven.test.skip=true
cd ../sparrow-file
mvn clean install -Dmaven.test.skip=true
cd ../sparrow-passport-ddd
mvn clean install -Dmaven.test.skip=true
cd ../sparrow-coder
mvn clean install -Dmaven.test.skip=true

sparrow-shell 提供 infra-bom 和 sparrow-bom,必须最先安装。

03

初始化数据库

启动 MySQL,创建 sparrow 数据库,并导入项目配置、表配置与示例表脚本。

bash
cd ~/workspace/sparrow/sparrow-coder
mysql -uroot -p -e "CREATE DATABASE IF NOT EXISTS sparrow;"
mysql -uroot -p sparrow < ddl/t_project_config.sql
mysql -uroot -p sparrow < ddl/t_table_config.sql
mysql -uroot -p sparrow < ddl/t_user_example.sql
04

配置工作区与服务

编辑 coder-main-spring-boot/src/main/resources/application.properties,设置本地路径、数据库与 Redis。

properties
workspace=/Users/<your-name>/workspace
project_root=sparrow
frontend_project_root=sparrow/sparrow-js

spring.datasource.druid.url=jdbc:mysql://127.0.0.1/sparrow?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
spring.datasource.druid.username=root
spring.datasource.druid.password=<your-password>

spring.redis.host=127.0.0.1
spring.redis.port=6379

这里使用 macOS 路径示例;请将用户名、数据库密码和服务地址替换为自己的配置。

05

配置前端静态资源

编辑 coder-main-spring-boot/src/main/configs/dev.properties,让生成器可以读取前端静态资源。

properties
physical_resource={your_home_path}/workspace/sparrow/sparrow-js/source

将 your_home_path 替换为实际用户目录,并确认路径与本地 sparrow-js 所在位置一致。

06

启动生成器

dev 环境默认监听 8888 端口,启动后进入首页并登录,即可开始配置项目。

bash
cd ~/workspace/sparrow/sparrow-coder/coder-main-spring-boot
mvn spring-boot:run

首页:http://localhost:8888;接口文档:http://localhost:8888/doc.html;Druid 监控:http://localhost:8888/druid(默认账号与密码均为 druid)。

依赖仓库与脚手架

sparrow-shell
基础框架:infra-bom、sparrow-bom 与 Sparrow 核心模块。
sparrow-starter
Spring Boot 与 Sparrow 框架的整合 Starter。
sparrow-file
文件服务,提供 file-starter。
sparrow-passport-ddd
认证框架,提供 passport-starter。
sparrow-example
后端脚手架,作为生成业务工程的起点。
sparrow-js
前端工程,内含 react-next-admin 前端脚手架。
sparrow-coder
代码生成器:项目配置、元数据解析与模板生成。

生成器模块结构

bom
依赖版本管理;coder-bom 的 parent 为 infra-bom。
coder-protocol
协议层:Query、Param 与枚举。
coder-po
持久化对象与官方示例 PO。
coder-dao-api
DAO 接口定义。
coder-dao-sparrow
Sparrow ORM 的 DAO 实现。
coder-dao-mybatis
MyBatis 的 DAO 实现。
coder-domain
领域业务逻辑与代码生成核心。
coder-infrastructure
基础设施层。
coder-adapter
适配层:Controller 与 Assemble。
coder-spring-starter
Spring Boot 整合 Starter。
coder-main-spring-boot
启动模块与 Application 入口。
ddl
数据库建表脚本。

SUPPORT / FAQ

接入时,你可能想知道。

编译时找不到 infra-bom 或 sparrow-* 依赖?

先确认依赖仓库已克隆,再按快速开始中的顺序执行 mvn clean install。sparrow-shell 必须最先安装,其余模块依赖它提供的 POM。

启动时无法连接数据库?

确认 MySQL 已启动、sparrow 数据库已创建,并检查 application.properties 中的连接地址、用户名和密码。

前端静态资源返回 404?

检查 application.properties 中的 workspace、frontend_project_root,以及 dev.properties 中的 physical_resource,确保它们指向真实存在的本地目录。

可以直接用官方示例 PO 生成业务代码吗?

不可以。Department 和 UserExample 仅作参考,请复制到业务工程自己的 PO 包中并修改包名后再生成。生成器以你的 PO 元数据为输入,生成过程无需 AI。

BUILD WITH SPARROW

让下一套后台,从模型开始。

定义你的项目和 PO 类,把时间留给真正不同的业务逻辑。