若依框架---模板生成

article/2025/6/27 2:33:48

上次说到通过mybatis-collection机制,将数据库中的一对多数据映射为Java对象GenTable,之后又是如何一步一步的生成预览代码的呢?

我们注意到GenTable中有一个字段名为tplCategory,它可取值crud, tree,sub,分别表示crud:单表;tree:树表操作;sub:主子表。暂未涉及,按下不表[手动狗头]。

模板引擎 Velocity

后续代码执行到:

VelocityInitializer.initVelocity();

这一句执行中,引入了一个第三方的类库org.apache.velocity.app.Velocity。经过询问度娘与谷哥,我们知道这是一个模板引擎。

通过简单阅读Velocity文档,了解到它可以通过配置模板并配合java代码实现后续内容填充。比如在掘金网站上有一篇博客介绍了如何使用Velocity:Velocity开发指南,例如,模板文件hello.vm中内容为:

Hi! This $name from the $project project.

通过对nameproject赋值,我们可以生成想要的内容。

		/* 首先,初始化运行时引擎,使用默认的配置 */Velocity.init();/* 创建Context对象,然后把数据放进去 */VelocityContext context = new VelocityContext();context.put("name", "Velocity");context.put("project", "Jakarta");/* 渲染模板 */StringWriter w = new StringWriter();Velocity.mergeTemplate("testtemplate.vm", context, w );System.out.println(" template : " + w );

然后,自然而然的下一步就是构造Velocity的数据以及获取模板。构造数据代码如下所示:

/*** 设置模板变量信息** @return 模板列表*/public static VelocityContext prepareContext(GenTable genTable){// 省略代码......VelocityContext velocityContext = new VelocityContext();velocityContext.put("tplCategory", genTable.getTplCategory());velocityContext.put("tableName", genTable.getTableName());velocityContext.put("functionName", StringUtils.isNotEmpty(functionName) ? functionName : "【请填写功能名称】");velocityContext.put("ClassName", genTable.getClassName());// 省略代码......return velocityContext;}

寻找模板代码如下:

 List<String> templates = new ArrayList<String>();templates.add("vm/java/domain.java.vm");templates.add("vm/java/mapper.java.vm");templates.add("vm/java/service.java.vm");templates.add("vm/java/serviceImpl.java.vm");templates.add("vm/java/controller.java.vm");templates.add("vm/xml/mapper.xml.vm");templates.add("vm/sql/sql.vm");templates.add("vm/js/api.js.vm");if (GenConstants.TPL_CRUD.equals(tplCategory)){templates.add("vm/vue/index.vue.vm");}
else if (GenConstants.TPL_TREE.equals(tplCategory))
{templates.add("vm/vue/index-tree.vue.vm");
}
else if (GenConstants.TPL_SUB.equals(tplCategory))
{templates.add("vm/vue/index.vue.vm");templates.add("vm/java/sub-domain.java.vm");
}

其中特意根据表类型做了区分,我们来看看其中的domain.java.vm长什么样子?

 有点复杂的样子。


http://chatgpt.dhexx.cn/article/jKn2erdT.shtml

相关文章

导出(若依框架)

导出&#xff08;若依框架&#xff09; 分析用户界面&#xff0c;以用户列表的导出为例。 导出 前端代码 ​ 点击导出按钮&#xff0c;触发函数handleExport&#xff0c;在该函数中调用exportUser&#xff0c;exportUser执行完毕后&#xff0c;再调用download方法下载。 ex…

简单入门若依框架

前言 本篇博客仅对若依框架的使用进行简单的介绍&#xff0c;它和php的fastadmin框架非常类似&#xff0c;是可以根据数据库表自动的生成一个完整的管理后台。关于fastadmin框架&#xff0c;我在前面的博客中有过简单的介绍&#xff0c;感兴趣的朋友可以查看这篇博客。 一、下载…

若依框架AjaxResult改造适应Swagger接口文档

一、 概述 若依框架后端使用的响应对象AjaxResult&#xff0c;和Swagger存在不兼容问题&#xff0c;导致返回体即使使用了Swagger注解&#xff0c;但是Swagger接口文档中&#xff0c;不显示返回体的对象Swagger文档&#xff1a; 若依Gitee上&#xff0c;也存在此问题&#x…

若依框架数据库密码加密

1. 用 Druid 提供的方法加密密码&#xff0c;控制台会输出三对值&#xff0c;分别是&#xff1a;privateKey、publicKey、password public static void main(String[] args) {String password "password";try {ConfigTools.main(new String[]{password});} catch (…

IDEA若依框架新建模块

创建新的module 项目上鼠标右键 选择Maven项目 Parent选ruoyi 点击Finish 编辑RuoYi-Vue_Wisdom/ruoyi-wisdom/pom.xml 在<artifactId>ruoyi-wisdom</artifactId>下面增加 <dependencies><!-- 通用工具--><dependency><groupId>com…

若依框架登录去除验证码

若依框架自带的登录功能还是挺好用的。但是在开发过程中经过因在编写代码或者编写设计文档登录会话到期重新登录。重新登录就会出现验证码&#xff0c;一天如果要输入10次验证码也会浪费不少时间。 验证码这个功能在生产环境非常有必要&#xff0c;但是在开发模式完全没有价值…

若依框架解析

1.框架介绍 RuoYi是一个基于Java技术开发的后台管理系统&#xff0c;基于技术组合&#xff08;SpringBootVue&#xff09;,内置模块有&#xff1a;部门管理、角色用户、菜单即按钮授权、数据权限、系统参数、日志管理、代码生成、表单构建等。支持多数据源、支持分布式事务。 …

若依框架项目

若依框架介绍 ruoyi是一个基于Java技术开发的后台管理系统。 包括有前后端分离版、微服务版、App版。内置模块有&#xff1a;部门管理、角色用户、菜单即按钮授权、数据权限、系统参数、日志管理、代码生成、表单构建等。支持多数据源、支持分布式事务。 若依前后端分离项目搭…

若依框架的使用

目录 1.为什么使用若依框架 2.环境搭建 2.1下载代码 2.2 系统配置 1.为什么使用若依框架 若依是一个快速开发框架&#xff0c;基于springboot&#xff0c;集成了mybatis&#xff0c;spring security&#xff0c;redis等常用的框架&#xff0c;支持多语言&#xff0c;已经实…

若依框架RuoYi前后端分离项目导入IDEA及运行启动

首先需要在码云上下载RuoYi-vue解压到你的工作目录&#xff08;https://gitee.com/y_project/RuoYi-Vue&#xff09; 然后去nodejs官网下载nodejs 除了选择你的安装目录一直next&#xff08;查看环境变量是否配置成功&#xff09; 安装完成后&#xff0c;cmd中输入&#xff1a;…

ruoyi(若依)框架使用说明(前后端分离)

TOC 框架介绍 本身是一个优秀的简单的后台管理系统框架,前端(Vue,ElementUI),后端(Spring Boot、Spring Security、Redis & Jwt),本身可以直接拉下来直接使用.它的强大之处在于代码自动生成器的使用,可以根据数据库的表对应生成全套前后端代码,代码植入后可以直接使用,复…

使用若依框架RuoYi前后端分离版(超详细步骤)

下一客:若依框架代码生成工具–单表增删改查(超详细步骤) 一、若依框架RuoYi项目运行启动教程(详细步骤) 1.1 官网下载代码 第一步:简介 RuoYi-Vue是一款基于SpringBootVue的前后端分离极速后台开发框架。 官网链接 在线文档 第二步:下载源码 1.点击复制,将链接复制到IDEA中…

若依开源框架解析

1、框架介绍 RuoYi是一个基于Java技术开发的后台管理系统&#xff0c;目前官方同步在维护的有3个版本。 开源协议&#xff1a;MIT 解释&#xff1a;MIT是和BSD一样宽松的许可协议,作者只想保留版权,而无任何其他了限制.也就是说,你必须在你的发行版里包含原许可协议的声明,无论…

若依框架的入门介绍及使用

若依框架的入门介绍及使用 文章目录 引言1.什么是若依2 .使用若依2.1系统需求2.1下载并运行2.2配置数据库 MySQL、Reids2.2.1MySQL配置2.2.2Redis配置 2.3前端启动 3. 框架结构和模块3.1后端结构3.2前端结构3.3内置功能3.4其他功能和扩展3.4.1代码生成器 总结 引言 若依&#…

从零入门开源框架---若依(前后端分离版)

一、若依是什么&#xff1f; 若依它就是一个开源项目&#xff0c;别人写好的代码&#xff0c;我们拿来进行二次开发,它主要是做数据和权限管理系统。 二、使用背景 任何公司的各种大的项目必然需要一个后台权限管理系统&#xff0c;这是必然的&#xff0c;但是如果不想投入太多…

若依框架学习笔记

若依框架简介 若依框架简介若依框架版本介绍若依框架&#xff08;vue前后端分离版本&#xff09;首页系统管理用户管理角色管理菜单管理 系统监控系统工具表单构建 代码生成 若依框架简介 根据官网介绍若依框架就是一个后台管理框架&#xff0c;主要使用技术在官网上也有介绍我…

若依框架入门(前后端分离版本)

目录 一 若依下载以及配置启动 1.下载地址 2.数据库引入及配置 3.前端vue启动 4.登录及验证 二.关于若依框架的基本使用方法 1.自动生成 2.菜单的配置 3.数据字典 4.关于api接口 5.关于定时任务 6.关于分页 一 若依下载以及配置启动 1.下载地址 学习基础:Spring…

若依框架详细使用

目录 &#x1f3f3;‍&#x1f308;若依是用来干什么的❓ &#x1f6a9;技术支持&#xff1a; &#x1f3f3;‍&#x1f308;如何下载❓ &#x1f6a9;官网地址: &#x1f3f3;‍&#x1f308;如何搭建ruoyi环境❓ &#x1f6a9;若依框架的目录结构 &#x1f6a9; 修改配…

js元素距离和鼠标位置整理

距离 offsetTop / offsetLeft ( 元素与父级 定位元素/table/td/th/body 的距离 ) clientTop / clientLeft ( 元素边框宽度 ) scrollTop / scrollLeft ( 元素滚动距离 ) window.scrollY / window.scrollX ( 文档/页面 滚动距离 ) window.pageYOffset / window.pageXOffset ( 另…

原生js实现跑马灯效果,鼠标放下可以停止跑动

js原生代码跑马灯效果纯js代码如下&#xff1a; 1.首先html的内容&#xff08;里面图片自己可以换&#xff0c;li里面也可以填文字&#xff09; <div> <ul><li>呵呵呵呵呵3</li> <li>叽叽叽叽叽4</li> <li…