一次生成,覆盖两端
以 PO 类为输入,同时生成后端分层代码和 React / Next.js 管理页面,减少结构相似的 CRUD 编写。
01 / CAPABILITIES
Controller、Service、DAO、Mapper、列表与表单,都从同一份业务模型出发。
以 PO 类为输入,同时生成后端分层代码和 React / Next.js 管理页面,减少结构相似的 CRUD 编写。
沿用整洁架构的职责划分与依赖倒置,按项目包名和模块前缀组织代码,保留业务扩展空间。
通过 column_configs 调整列展示、过滤、行菜单与状态命令,让生成的后台贴合实际业务。
02 / CLEAN ARCHITECTURE
后端以 sparrow-example 为脚手架,前端以 sparrow-js 内的 react-next-admin 为脚手架。两个独立工程,遵循同一套业务定义。
接口入口与对象转换
领域逻辑与业务规则
基础设施与接口实现
持久化接口与数据访问
按职责分层,以接口和依赖倒置组织协作,让领域逻辑与具体存储实现保持解耦。
Spring Boot + React / Next.js独立编译 · 分别启动03 / WORKFLOW
先下载属于自己的工程,再编写 PO、生成代码,最后回到工程中继续开发。
在「项目配置」中设置项目名称、中文名称、业务包名、前端项目名称、模块前缀、代码架构与脚手架,并按需开启国际化和父 module。通过 zip-download 下载自己的前后端业务工程。
后端执行 mvn clean package -Dmaven.test.skip=true,再通过 java -jar 启动对应模块产物。前端进入生成的前端目录,执行 npm install 和 npm run dev。两端独立编译、分别启动。
在刚生成的业务工程中,参考父表 com.sparrow.coder.po.Department 与子表 com.sparrow.coder.po.UserExample。将示例复制到自己的 PO 包并修改包名,如 com.yourcompany.po。用 @Table、@Column 描述元数据,用 @ListDatasource(type = ListDatasourceType.TABLE, params = "t_department") 关联父表;不要直接使用官方示例类生成业务代码。
回到 sparrow-coder,选择表并点击「生成代码」(/coder/generate.json)。根据 PO 元数据与模板,生成 DAO、Domain、Adapter、Infrastructure 各层代码,以及前端列表和表单页面,全程无需 AI。
回到业务工程,重新编译并启动后端与前端,让新增代码生效。在生成的架构基础上继续实现自己的业务逻辑。
在 t_table_config 的 column_configs 中配置列展示、过滤、行菜单与状态命令,按业务需要调整后台管理界面。父子表关系可自动生成下拉或关联控件。
04 / MODEL FIRST
通过 @Table、@Column 描述表与字段,通过 @ListDatasource 描述关联关系。模板读取这些元数据,生成对应代码与控件。
Department 是父表,UserExample 是子表。departmentId 关联 t_department,自动生成下拉选择或关联控件。
Department1 → NUserExamplepackage 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
按顺序完成依赖安装、配置与启动。展开每一步查看命令,代码可直接复制并按本地环境调整。
Node.js 仅用于运行前端项目。
将依赖、前端工程和生成器放在 ~/workspace/sparrow 下,后端脚手架放在工作区根目录。
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.gitsparrow-example 与 sparrow 目录平级;react-next-admin 位于 sparrow-js 内。Node.js 仅在运行前端时需要。
先安装基础框架,再安装 Starter、文件服务与认证框架,最后编译 sparrow-coder。
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=truesparrow-shell 提供 infra-bom 和 sparrow-bom,必须最先安装。
启动 MySQL,创建 sparrow 数据库,并导入项目配置、表配置与示例表脚本。
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编辑 coder-main-spring-boot/src/main/resources/application.properties,设置本地路径、数据库与 Redis。
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 路径示例;请将用户名、数据库密码和服务地址替换为自己的配置。
编辑 coder-main-spring-boot/src/main/configs/dev.properties,让生成器可以读取前端静态资源。
physical_resource={your_home_path}/workspace/sparrow/sparrow-js/source将 your_home_path 替换为实际用户目录,并确认路径与本地 sparrow-js 所在位置一致。
dev 环境默认监听 8888 端口,启动后进入首页并登录,即可开始配置项目。
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)。
bomcoder-protocolcoder-pocoder-dao-apicoder-dao-sparrowcoder-dao-mybatiscoder-domaincoder-infrastructurecoder-adaptercoder-spring-startercoder-main-spring-bootddlSUPPORT / FAQ
先确认依赖仓库已克隆,再按快速开始中的顺序执行 mvn clean install。sparrow-shell 必须最先安装,其余模块依赖它提供的 POM。
确认 MySQL 已启动、sparrow 数据库已创建,并检查 application.properties 中的连接地址、用户名和密码。
检查 application.properties 中的 workspace、frontend_project_root,以及 dev.properties 中的 physical_resource,确保它们指向真实存在的本地目录。
不可以。Department 和 UserExample 仅作参考,请复制到业务工程自己的 PO 包中并修改包名后再生成。生成器以你的 PO 元数据为输入,生成过程无需 AI。