lowcode
2021-08-05 01:55:02 0 举报
lowcode代码生成
作者其他创作
大纲/内容
指定读取的包目录
生成Service
指定读取的类根目录
model①null ②serviceName、serviceSuffix、servicePkg ③serviceImplName、serviceImplSuffix、serviceImplPkg、entityName、entityPkg ④entityReqSuffix、entityReqPkg、fields(common+reqFilter) ⑤entityRespSuffix、entityRespPkg、fields(common+reqFilter+respFilter) ⑥controllerName、controllerSuffix、controllerPkg、lowerEntityName
初始化注入模板的数据信息:包名、类名、类后缀、请求对象和响应对象的信息
生成ServiceImpl
获取生成Controller的模板
用户是否自定义模板
⑥builderController
X
生成Controller
以jar包形式被lowcode插件依赖
将保存和更新功能糅合在一起
改写schema:添加继承关系
获取生成ServiceImpl的模板
读取配置信息
通过java代码的方式生成
执行schema2pojo生成pojo
获取属性的类型,属性名,属性的泛型,属性所在的包信息
获取Request类生成的输出路径:绝对路径
初始化Response类的生成目录
初始化Controller类的生成目录
缓存Class<?>key=classNamevalue=Class<?>
获取生成Response的模板
通过File获取到文件名(类名)className和文件的绝对路径
通过线程类加载器读取
①初始化数据
项目结构:wii-lowcode-tool wii-lowcode-tool-core wii-lowcode-tool-maven-pluginwii-lowcode-tool-test
⑤builderResponse
初始化Request类的生成目录
获取Response类生成的输出路径:绝对路径
start:builder
通过maven插件的形式执行mvn命令生成
通过接口实现配置
初始化注入模板的数据信息:要根据bean包中的类信息生成,bean中有的Response中要有,还要携带bean类中父类的一些字段信息
注入配置信息
通过自定义加载器读取
规定:1.模板文件放在resources/flt/目录下 2.自定义模板中动态注入的属性需要和model保存一致3.schema文件放在resource/schema/目录下
初始化ServiceImpl类的生成目录
不灵活
获取生成Request的模板
生成Response
获取默认模板
根据包的绝对路径可以获取到该包下的所有File对象集合
默认读取当前jar包
获取用户自定义模板
②builderService
创建该目录
列举出可配置的信息
从classSet中提取中对应的classNames集合并缓存className=fullClassName
false
lowcode-maven-plugin
被其他项目直接依赖
获取生成Service的模板
true
③builderServiceImpl
获取ServiceImpl类生成的输出路径:绝对路径
end
要求:import java.lang.Stringpublic class Xxx{ private int age; private String name;}
可选:1.项目的作者信息(默认为System) 2.每个业务类所处的模块名(默认为当前模块) 3.每个业务类所处的包名(默认为test包) 4.业务类是否有继承关系(默认为fasle) 4.1父类schema的名字 4.2子类schema的名字 4.3修改后新的schema的名字(默认新的schema覆盖子类的schema)
执行execute()
初始化注入模板的数据信息:包名、类名、类后缀
④builderRequest
构造类扫描器(扫描的包)
获取superClass<?>,通过reqFilter或respFilter过滤出需要的父类属性
获取Controller类生成的输出路径:绝对路径
遵循restful风格的接口
start:mvn
对scanPkg进行包扫描返回到classSet集合
必须: 1.指定项目的根路径(自动获取) 2.指定数据库的数据源信息 3.指定基本的包目录(如:com.tencent.wii.lowcode) 4.指定pojo生成的包,同样是类扫描器扫描的包(如:bean,实际包目录为com.tencent.wii.lowcode.bean)
获取缓存的Class<?>
获取Service类生成的输出路径:绝对路径
初始化注入模板的数据信息:包名、类名、类后缀、继承的基类名、基类所在包、基类泛型名,基类泛型所在包
初始化注入模板的数据信息:要根据bean包中的类信息生成,bean中有的Request中要有,还要携带bean类中父类的一些字段信息
全限定类名=包名+类名类加载器加载全限定类名获取类对应的Class<?>信息,将类信息保存到classSet集合中
条件:1.schema所在的绝对类路径2.pojo生成的类目录 3.pojo生成的包目录 4.默认生成的类名即文件名
初始化Service类的生成目录
生成Request
遍历classNames集合,每个类都要生成对应的业务模板代码
0 条评论
下一页