RuoYi-Vue代码生成器高级功能:自定义模板开发
你还在为重复编写CRUD代码而烦恼吗?RuoYi-Vue代码生成器的自定义模板功能让你只需一次配置,即可批量生成符合项目规范的代码文件,开发效率提升10倍!本文将详解自定义模板的开发方法,读完你将掌握:模板文件结构解析、前端表单配置技巧、后端生成逻辑定制、高级参数配置实战。
代码生成器核心架构
RuoYi-Vue代码生成器采用前后端分离架构,前端负责模板配置与预览,后端处理代码生成逻辑。核心模块包括:
- 前端配置界面:ruoyi-ui/src/views/tool/gen/index.vue提供可视化操作界面,支持表结构管理、模板预览和代码生成
- 后端生成服务:ruoyi-generator/src/main/java/com/ruoyi/generator包含表结构解析、模板渲染核心逻辑
- 模板配置文件:ruoyi-ui/src/utils/generator定义前端表单组件与生成规则
代码生成器图标
前端模板配置开发
前端模板配置决定了生成界面的表单元素与验证规则,通过修改配置文件可实现自定义表单布局。
表单组件定义
在ruoyi-ui/src/utils/generator/config.js中定义表单组件,例如添加自定义下拉选择框:
{
label: '自定义下拉',
tag: 'el-select',
tagIcon: 'select',
placeholder: '请选择自定义选项',
defaultValue: '',
options: [
{ label: '选项A', value: 'A' },
{ label: '选项B', value: 'B' }
],
required: true,
changeTag: true
}
生成规则配置
ruoyi-ui/src/utils/generator/html.js控制HTML模板生成逻辑,通过修改makeUpHtml函数自定义表单布局:
export function makeUpHtml(conf, type) {
// 自定义表单生成逻辑
const htmlList = conf.fields.map(el => layoutsel.layout)
return buildFormTemplate(conf, htmlList.join('\n'), type)
}
后端模板生成逻辑
后端通过GenTable实体类控制生成规则,在ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTable.java中定义了核心配置参数:
// 生成包路径
private String packageName;
// 生成模块名
private String moduleName;
// 生成业务名
private String businessName;
// 模板类型(crud/tree/sub)
private String tplCategory;
自定义生成路径
通过genPath参数指定代码生成路径,支持绝对路径与相对路径:
// 设置自定义生成路径
genTable.setGenPath("/opt/projects/custom/");
// 生成代码
genCodeService.generatorCode(genTable);
高级配置实战
多模板切换
系统支持三种模板类型切换,通过tplCategory参数控制:
// 单表CRUD模板
genTable.setTplCategory("crud");
// 树形结构模板
genTable.setTplCategory("tree");
// 主子表模板
genTable.setTplCategory("sub");
前端组件动态渲染
在ruoyi-ui/src/views/tool/gen/genInfoForm.vue中配置动态表单,通过v-if控制组件显示:
<el-form-item v-if="tplCategory === 'tree'" label="树编码字段">
<el-input v-model="form.treeCode" placeholder="请输入树编码字段" />
</el-form-item>
模板开发最佳实践
- 模板复用:将通用布局抽象为公共组件,通过ruoyi-ui/src/components/目录实现复用
- 版本控制:建议对自定义模板进行版本管理,配合系统提供的导入导出功能ruoyi-ui/src/views/tool/gen/importTable.vue
- 参数校验:使用ruoyi-ui/src/utils/validate.js添加自定义校验规则,确保生成参数合法
总结与展望
自定义模板功能彻底解放了重复编码工作,通过本文介绍的方法,你可以构建符合项目特色的代码生成体系。后续版本将支持模板市场功能,允许开发者分享与下载社区模板。立即尝试自定义模板开发,让代码生成更高效、更灵活!
点赞收藏本文,关注项目更新,下期将带来"代码生成器与CI/CD集成实战"。如有疑问,欢迎在doc/若依环境使用手册.docx中查阅详细文档。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



