代码生成
本页用于说明 Java 后端在开发新业务模块时的代码生成与起步方式。
适用场景
- 已有业务表结构,希望快速生成基础 CRUD 骨架
- 希望在新模块中保持命名、分层与接口约定一致
生成内容通常包含:
- Entity / Mapper / XML
- Service / ServiceImpl
- Controller(REST API)
- DTO/VO(如果项目模板支持)
推荐方式
- MyBatis-Plus Generator(推荐,生成结果可控)
- IDE 插件(适合少量重复代码,适配性取决于团队习惯)
生成前准备
1. 确认数据库结构
- 表名、字段名、主键策略、逻辑删除字段
- 通用字段建议统一:
id、create_time、update_time、create_by、update_by
2. 确认接口前缀与模块包名
- API 前缀以项目现有模块为准(建议保持
/api/v1风格一致) - 包名建议按业务模块分组:
com.youlai.boot.<biz>
代码生成器配置
项目通常会提供一个单独的 codegen 模块或生成入口类(以仓库实际结构为准)。你需要重点关注以下配置项:
- 数据库连接:url/username/password
- 生成范围:要生成的表、表前缀过滤、是否包含视图
- 输出目录:Java 源码、Mapper XML、模板文件
- 命名策略:下划线转驼峰、表名到类名规则
- 公共基类:是否继承 BaseEntity、分页入参/返回结构
生成步骤(MyBatis-Plus Generator)
1. 运行生成入口
常见方式:
- 直接运行生成器 main 方法
- 或执行 Maven/Gradle 的生成任务(如果项目提供)
生成完成后建议立即做一次自检:
- Controller 路径是否符合现有模块风格
- Mapper XML 是否输出到正确目录
- 代码格式是否满足团队规范
2. 必做的手工调整
- 字段校验:为新增/更新请求补齐必要的参数校验
- 权限标识:补齐接口的权限注解/权限点
- 返回结构:确保统一使用项目约定的 Result/PageResult
- 分页/排序:确认分页参数命名与默认排序字段
模板定制
如果你希望生成的 Controller/DTO/Mapper 更贴合项目规范,推荐通过模板定制来做,而不是每次生成后手工改:
- 调整模板中的包名、注解、返回结构
- 把“团队统一约定”的内容固化进模板
- 对于业务差异较大的模块,建议提供多套模板(如:简单 CRUD / 树形结构 / 主子表)
前端联调建议
生成后端接口后,前端联调通常按以下顺序推进:
- 使用
/doc.html先验证接口是否可用 - 前端补齐 API 封装(按前端项目的 api 目录结构放置)
- 对齐分页/筛选参数(尤其是时间范围、排序字段)
- 对齐字段命名与枚举值(建议把枚举集中维护,避免魔法值)
接口调试入口:http://localhost:8000/doc.html。
模块开发建议
推荐目录结构:com.youlai.boot.module.<biz>。
一个最小业务模块通常包含:
- Entity
- Mapper
- Service / ServiceImpl
- Controller
对于高频通用模块(如字典、用户、角色、菜单),不建议依赖生成器覆盖式生成,优先在现有模块上按规范迭代。
