1. 项目背景与核心痛点
在基于RuoYi框架进行前后端分离开发时,代码生成器是提升开发效率的利器。但默认的MyBatis-Plus代码生成脚本输出的格式往往存在几个典型问题:实体类字段注释缺失、Swagger注解未自动添加、Service层方法过于基础、Controller返回格式不统一等。这些问题导致每次生成代码后都需要手动调整,反而增加了重复工作量。
我在三个不同规模的项目中使用RuoYi代码生成器时,发现平均每个实体类生成后需要额外花费15-20分钟进行格式优化和功能补充。当项目涉及50+个业务表时,这种重复劳动就会消耗近20个工时。更麻烦的是,不同开发人员的手工调整方式不统一,后期维护时会出现"一个实体类,多种代码风格"的情况。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 生成脚本优化方案设计
2.1 基础环境准备
建议使用RuoYi 3.x + MyBatis-Plus 3.5.x组合,这是目前最稳定的版本搭配。在ruoyi-generator模块的src/main/resources目录下,重点关注这三个文件:
generator.yml:数据源配置vm/java/entity.java.vm:实体类模板vm/java/mapper.java.vm:Mapper接口模板
重要提示:修改前务必备份原始模板文件!我曾遇到过模板修改后出现语法错误导致生成失败,又找不到原始模板的尴尬情况。
2.2 实体类模板优化
在entity.java.vm中增加以下关键改进:
java复制// 添加Swagger注解
#foreach ($column in $columns)
#if($column.columnComment.length() > 0)
@ApiModelProperty(value = "${column.columnComment}")
#else
@ApiModelProperty(value = "${column.attrName}")
#end
#if($column.isPk)
@TableId(value = "${column.columnName}", type = IdType.AUTO)
#else
@TableField(value = "${column.columnN
