# 10.1 概述与架构 :::tip 概述 代码生成器内省数据库表结构,一键产出后端四件套、前端页面与 API 模块,并完成菜单创建、字典初始化与路由声明块追加。CLI(cmd/gen)与 Web 界面(tool/generator)双入口,共享同一生成引擎。 ::: ## 生成流水线 ```text ① 内省表结构(表/列/索引/注释 → 生成模型) ↓ ② 模板渲染(templates/*.tpl + 表模型 → 产物文本) ↓ ③ 幂等落盘(generator.overwrite 控制覆盖/跳过) ↓ ④ 副作用(幂等创建菜单行 + 字典初始化 + router.go 追加 Bind 声明块) ``` ## 产物清单 | 类别 | 内容 | |---|---| | 后端四件套 | internal/model/dto、repository、service、handler 下 `{模块}.go` | | 路由声明 | router.go 的 Bind 声明块(自动追加) | | 前端 | api 模块 + views 页面(index/edit/detail/columns/querySchemas;树形表走 ui2 模板) | | 菜单 | 页面菜单 + 权限节点(幂等创建,挂 generator.parentMenuId) | | 字典 | 按枚举列初始化字典与字典项 | ## 两个入口 | 入口 | 场景 | 说明 | |---|---|---| | CLI(make gen) | 本地开发、批处理 | `go run ./cmd/gen -tables "表名|注释"` | | Web(tool/generator) | 可视化挑选表、预览后生成 | 内置表列表查询、代码预览、批量生成 | ## 覆盖策略 `generator.overwrite`: - `true`:全部产物覆盖重新生成(模板变更后同步) - `false`:**缺失补生成、存在跳过**(保护手写内容,默认安全档) 生成结果分类呈现:generated(新建)/ skipped(跳过)/ overwritten(覆盖)/ failed(失败)。 ## 安全开关 生成器具备写服务器源码能力——`generator.enable=false` 时路由整体不注册;**生产模式(app.prod=true)拒绝未关闭的生成器**。 ## 学习建议 先读 [第 3 章 模块开发实战](/zh/guide/overview.html) 理解手工四件套,再回来用生成器——你能看懂每一行产物,也知道改哪里。 ## 下一步 → [10.2 CLI 命令行使用](/zh/generator/cli.html)