Skip to content

代码生成

本页用于说明 Java 后端在开发新业务模块时的代码生成与起步方式。

适用场景

  • 已有业务表结构,希望快速生成基础 CRUD 骨架
  • 希望在新模块中保持命名、分层与接口约定一致

生成内容通常包含:

  • Entity / Mapper / XML
  • Service / ServiceImpl
  • Controller(REST API)
  • DTO/VO(如果项目模板支持)

推荐方式

  • MyBatis-Plus Generator(推荐,生成结果可控)
  • IDE 插件(适合少量重复代码,适配性取决于团队习惯)

生成前准备

1. 确认数据库结构

  • 表名、字段名、主键策略、逻辑删除字段
  • 通用字段建议统一:idcreate_timeupdate_timecreate_byupdate_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 / 树形结构 / 主子表)

前端联调建议

生成后端接口后,前端联调通常按以下顺序推进:

  1. 使用 /doc.html 先验证接口是否可用
  2. 前端补齐 API 封装(按前端项目的 api 目录结构放置)
  3. 对齐分页/筛选参数(尤其是时间范围、排序字段)
  4. 对齐字段命名与枚举值(建议把枚举集中维护,避免魔法值)

接口调试入口:http://localhost:8000/doc.html

模块开发建议

推荐目录结构:com.youlai.boot.module.<biz>

一个最小业务模块通常包含:

  • Entity
  • Mapper
  • Service / ServiceImpl
  • Controller

对于高频通用模块(如字典、用户、角色、菜单),不建议依赖生成器覆盖式生成,优先在现有模块上按规范迭代。

下一步

基于 MIT 许可发布 · 由 ❤️ 和 ☕ 驱动 · 支持作者