Expanse 培训:Day3:代码生成工具生成代码

代码生成工具生成代码

本框架配套的代码自动生成工具、根据编写好的类代码元数据,可生成前端、后端、数据库可以直接运行的代码。

  • 支持单实体、主子实体、树型实体结构。
  • 支持页面模板扩展
  • 数据库表生成表结构;字典下拉类别、导航、导航关联权限脚本。
  • 后端生成 entities、repositories、services、、servicesimpl、controllers 代码 。
  • 前端生成列表及编辑页面,编辑页面支持弹出或导航方式访问。
  • 此工具作为 IDEA 插件方式使用。

安装

下载最新发布的插件包

File >Settings > Plugins > Install plugin from disk

如下图:

使用

编写元数据

进入项目 codemeta 项目

如果没有这个模块,操作如下的步骤:

如显示缺少“me.javaroad.plugins”包,请手工引入,引入方式:

键入类代码

参考 expanse-framework\Server\codemeta,类需要继承 FullAuditedEntity,如果是树形实体 ,需实现 ITreeObject 接口。

  • 示例代码说明:
示例类 说明
Base_TreeTest 树形结构元数据
PL_Entity 普通实体元数据
PL_EntityWithChildren 主子实体元数据
PL_EntityChild 主子实体的子实体元数据,无需生成 UI
  • 元注解、无类型说明
示例类 说明
@Display 注解、显示名称注解,用于类、字段
@TypeMeta 注解、类元数据注解, value: 所属子项目,可选值:loansubsystem、publicsubsystem;uiType:UI 生成方式,可为 dialog: 弹出、nav:菜单导航
@MaxLength 注解、字段最大长度,仅用于字段,类型为 String 类型的字段生效,如未设置,默认长度 50,数值、日期类型无效
@Required 注解、是否必输,仅用于字段
@DataDictionary 注解、字典下拉选择,value: 字典下拉类别, 仅用于字段
@ObjectRef 注解、对象参照,系统自动在数据库生成索引字段,在服务方法中加入 getListBy{字段名称},deleteBy{字段名称},deleteBatchBy{字段名称} 方法,value: 参照名称, 仅用于字段
@ForeignKey 注解、子类产照父类字段名称,和字段类型 Children<…> 配合使用,构成主子结构实体,仅用于字段
Currency 字段类型、货币类别,仅用于字段
Percent 字段类型、百分比类别,仅用于字段
Children<…> 字段类型、子类类别,和注解 @ForeignKey 配合使用,构成主子结构实体,注意子类中的对应字段(本例中的 loanDocId 一定要添加 @ObjectRef(“***”) 对象参照注解,仅用于字段
BigDecimal 字段类型、普通数值类型,仅用于字段
Integer 字段类型、整形数值类型,仅用于字段
Boolean 字段类型、Boolean 类型,仅用于字段
LocalDateTime 字段类型、日期类型,仅用于字段

类代码生成

  • 步骤

  • 元类点击右键!

>

  • 步骤 2

> 执行 expanse-framework\Server\db\sql{元类名称}Table.sql(数据库表结构脚本) 执行 expanse-framework\Server\db\sql{元类名称}Data.sql(自动生成的导航、权限、数据字典类别数据库脚本)

  • 步骤 3

> 菜单 系统 -> 缓存管理,点击 重新加载缓存 按钮 加载数据库改动 注销退出 重新登陆 数据生效

代码模板修改

说明