AutoScript 代码生成Saas工具

AutoScript 代码生成Saas 创建模版手册

前言

为了满足用户自定义代码模版需求,特意编写该手册,方便用户使用AutoScript 工具来快速配置模版。

该工具基于FreeMarker 技术,如果首次接触,可以先了解附录的FreeMarker语法,以便迅速地编写模版。某些功能FreeMarker不能很好支持,需要平台自定义一些函数来补充完善代码生成需要。

模版工程,工程参数,模版关系如下图:
在这里插入图片描述
一个模版工程只需定义一组工程参数,可以若干个模版,一个模版通常对应一组文件

本人也是做开发多年,深感IT民工“搬砖”辛苦,想想如何减轻天下开发人员工作量负担,酝酿良久。多版改造,终于出一版BS结构代码生成器!我知道任何系统都不是完美,必经迭代改造,希望用户使用过程中,多提宝贵意见,逐步完善该工具。实现初心:让天下程序员脱离繁复工作!能按点上下班,多抽出时间陪伴家人,保养好身体,为社会做出更大贡献。

系统特点
ü 该系统只是提供模版配置,所以它具有平台无关性,语言无关性。能生成任何平台,任何框架,任何语言代码及相关配置

ü 一键生成,支持批量生成;一个功能生成一般都是秒级生成,一个项目一次生成也是分钟级别而已!

ü 支持从设计到代码,一气呵成!目前设计支持pdm格式,如果还有其他,可以提出。应网友要求支持sql表结构导入。

ü BS结构,本地无需任何安装,直接访问云服务器即可。系统升级服务就升级。

ü 支持定制页面,可能有些客户需求不同,比如直接连接云上系统,挂接菜单等。

编写模版次序
1.数据库设计,目前只支持pdm及SQL文件格式

2.根据业务需求,归纳总结系统模版,比如单表,主子表等。

3.根据模版做出比较通用的功能,切勿加有业务的功能,因为生成代码是统一个“模”生成的,必须具有通用性。

4.着手编写模版。编写模版时,通常一个模版功能分为前后端,一般模版也分为前端模版和后端模版。便于开发人员使用。为了加快开发人员入门,本文以生成bean vo 为例子,详细说明如何创建模版。

这个例子熟练后,可以参考代码生成平台的其他工程创建其他模版。

本文以bean:AsKnowledgeBase.java为例,示范如何配置模版
在这里插入图片描述

package top.tangyh.lamp.learnpm.entity;

 

import java.time.LocalDateTime;

 

 

/**

 * <p>

 * 知识库实体类

 * </p>

 *

 * @author lsb

 * @date 2022-06-26

 */

@Data

public class AsKnowledgeBase  {
   

 

    private static final long serialVersionUID = 1L;

 

    /**

     * 类型

     */

    private String kbType;

    /**

     * 关键字

     */

    private String kbKeyword;

    /**

     * 语法

     */

    private String kbGrammar;

    /**

     * 描述

     */

    private String desc;

 

}

 

新建工程
在浏览器(推荐用谷歌浏览器)地址栏录入:http://jz-fw.com:8081/,如果地址栏有变化,发邮件及短信通知
在这里插入图片描述
首次使用,需要注册用户
在这里插入图片描述
填写上面各项,手机号和邮箱为了忘记密码,系统变更时发通知用,不会对外暴露公开,请放心注册。

登陆进去后,点击菜单:模版维护->模版列表
在这里插入图片描述
点击新增后,出现如下界面:
在这里插入图片描述
工程名称:录入一个有意义的名称,通常为带有业务含义,比如XXX平台单表模版,工程名称不能与系统现有工程名称相同。

字符集:即jdk支持字符集名称。通常为UTF-8

是否选数据源:是否需要上传表结构(pdm文件等),通常用于创建新项目模版。生成功能代码,一般选择是,如图绿色;新建项目,选否,开关往左拨。变红色。

自定义运行页面URL:用于定制生成代码页面,需要联系平台定制,然后才能配进去。

备注:对于工程的普通描述。

填完,点击保存按钮。

配置工程参数
工程参数通常用于配置一些公共参数,比如根包名,作者,根目录,数据源名称等等。需要根据平台框架需要配置。

在工程列表点击六边形图标,进行参数配置,如下图:
在这里插入图片描述
点击六边形图标后,进入下图:
在这里插入图片描述
点击新增按钮,进入下图:
在这里插入图片描述
在这里插入图片描述
各项说明如下:

参数类型:是生成代码时,配置工程参数页面参数界面控件是什么类型,通常类型有如下图:
在这里插入图片描述
单行输入框,多行输入框(通常说的大文本框),日期,时间,数字输入框,单选框,多选框等

参数标题:在界面控件前面标题,提示界面控件的作用。

宽度:界面控件占用宽度,通常为50%,100%

验证规则:通常填必填验证规则。如果该参数不是必填,可以为空

选择内容:用于下拉框选择,下拉框有那些选项

参数名:这个非常重要,用于模版中如何得到参数输入的值,就是靠这个参数名来获取。同一个模版工程中,参数名唯一。

占位符:就是提示使用者文本,比如请输入xxxx之类

最大长度:指定参数能录入的最大长度

CS风格:目前尚不支持

初始化值:就是参数默认值

最大值:用于数字输入框的最大值

最小值:用于数字输入框的最小值

小数位:用于数字输入框的能录入小数位数

步长:目前尚未支持

最大行数:用于多行输入框的最多输入行数

最小行数:用于多行输入框的最小输入行数

初始行数:用于多行输入框的初始行数(一开始就显示有多少行)

初始列数:用于多行输入框的初始列数(一开始就显示有多少列)

下面以单行输入框和下拉框为例子

单行输入框:
在这里插入图片描述
在这里插入图片描述
下拉框:

在这里插入图片描述
在这里插入图片描述
选择内容截图看不全,下面复制出文本:

[{“value”:“DsConstant.DEFAULTS”,“label”:“缺省数据源”},{“value”:“DsConstant.BASE_TENANT”,“label”:“动态租户base库”}, {“value”:“DsConstant.EXTEND_TENANT”,“label”:“动态租户extend库”}]

它是一个JSON数组,每一项都包含value,label,其他label为显示名称,value为对应值

有多少项,就构造多少个{}

我们观察一下demo的Bean,会发现文件根位置,根包名和作者是可以提取成参数,如下图:
在这里插入图片描述
在这里插入图片描述
我们创建三个输入框的参数即可,如下图:
在这里插入图片描述
【注意】:目录必须以/作为文件分隔符
--------------------------------根包名参数--------------------------
在这里插入图片描述
--------------------------------作者--------------------------
在这里插入图片描述
全部录入完,如下图:
在这里插入图片描述

新建模版

配置完模版后,可以正式进入编制模版阶段了,点击如下按钮:
在这里插入图片描述
点击上图图标,进入模版维护列表
在这里插入图片描述
点击新增,进入模版编辑界面
在这里插入图片描述
模版名称可以任意起,同一个模版工程里不能重复,这个例子我们可以起bean作为模版名称;后面到关键模版内容配置地方,在开始配置之前,先观察实际的bean内容,如下图:
在这里插入图片描述
可以看到需要两层循环才能完成bean vo生成
循环一个表写法如下:

<#list rootnode.getChildNodesByPath(“Table”) as tableNode>

</#list>

<#list …> 表示循环开始

</#list> 表示循环结束

循环一个表字段写法如下:

<#list tableNode.getChildNodesByPath(“Column”) as columnNode>

</#list>

循环问题搞掂后,还有一些细节入下图:
在这里插入图片描述

上图还漏了,创建文件及根包名

 

取出表中文名写法:

 ${
   tableNode.getAttributeVal("name")}

 

取作者写法:

${
   author}

author是配置工程参数的参数名

 

取当前时间写法:

 ${
   currentdate("yyyy-MM-dd")}

Yyyy-MM-dd 是日期格式

 

表名转换为类名是一个宏,调用如下:

<#assign tablenametrimmodule><@getTableName tableName='${
   tableNode.getAttributeVal("code")}' />

 

字段名转属性,字段类型转java类型都是宏,在下面的模版内容逐一标出

 

取字段中文名写法:

${
   columnNode.getAttributeVal("name")}

 

创建文件写法

@{
   createTextFile("xxx",false)}

文件内容

@
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值