本项目直接使用了一个功能强大的代码生成器 睿Rui
,这个代码生成器可以设置项目的目录结构和具体的代码模板,
可以方便的从零生成一个完整的项目,也可以在已有项目结构中生成指定的代码文件。
# 7.1 项目文件简介
所有内容都在 src/main/resources
下面:
lib
目录,代码生成器和数据库驱动 jar 包放到该目录下mysql-connector-java-5.1.49.jar
MySQL驱动,当前只提供了MySQL驱动, 自己可以替换版本,连接其他数据库时,将对应的驱动放到当前 lib 目录下, 你可以把自己常用的各种数据库驱动都放在这里。rui-cli.jar
代码生成器
mapper-templates
模板文件model.java
普通的实体类模板model-lombok.java
使用 lombok 注解的实体类模板mapper.java
Mapper 接口模板mapper.xml
Mapper XML 模板service.java
Service 接口模板serviceImpl.java
Service 接口实现模板
project.yaml
代码生成器配置文件
这部分内容需要下载使用,为了方便使用,提供一个压缩包直接下载使用(最新模板从当前项目下载)。
百度网盘
链接:https://pan.baidu.com/s/1uyROE1dgvrp8h-yGG3rR6Q
提取码:an7g数据库驱动部分提供一些链接,可以根据需要进行下载:
- MySQL Connector/J (opens new window)
- MariaDB Java Client (opens new window)
- PostgreSQL JDBC Driver (opens new window)
- Microsoft JDBC Driver For SQL Server (opens new window)
- JTDS for Microsoft SQL Server (opens new window)
- Oracle JDBC Driver - Ojdbc10 (opens new window)
- SQLite JDBC (opens new window)
- Apache Derby Client JDBC Driver (opens new window)
- ClickHouse JDBC (opens new window)
- DB2 - IBM Data Server Driver For JDBC and SQLJ (opens new window)
- Informix Driver (opens new window)
# 7.2 代码生成器配置 project.yaml
下面通过注释介绍每一项配置的含义或者作用:
# 模板的名字,生成代码的根目录名称
name: mybatis-mapper-demo
# 代码生成的路径,可以使用 SYS 和 ENV 等变量,具体包含的内容和运行环境有关
# user.dir 为当前运行命令的目录,path 不设置时的默认值也是当前路径
# 当 path 路径以 .zip 后缀结尾时,会将生成的目录结构和代码放到压缩包中
#【命令行】可以通过 —o 重新指定位置
path: ${SYS['user.dir']}/
# 模板文件所在路径,默认为相对 path 所在的位置,不设置时和 path 相同
#【命令行】可以通过 —T 重新指定位置
templates: mapper-templates
# 数据库配置
database:
# 数据库连接配置
jdbcConnection:
# 使用方言,默认为 JDBC 方式,可能会取不到表或字段注释
# 后续介绍如何通过字典匹配注释值
#【命令行】可以通过 --jdbc.dialect 覆盖
dialect: MYSQL
# jdbc驱动
#【命令行】可以通过 --jdbc.driver 覆盖
driver: com.mysql.jdbc.Driver
# jdbc连接地址
#【命令行】可以通过 --jdbc.url 覆盖
url: jdbc:mysql://localhost:3306/test?useSSL=false
# 用户名
#【命令行】可以通过 --jdbc.user 覆盖
user: root
# 密码
#【命令行】可以通过 --jdbc.password 覆盖
password: root
# 获取表配置,支持 % 和 _ 模糊匹配,可以配置多个值
# 还有一个支持复杂规则 tableRules 属性后续单独介绍
#【命令行】可以通过 -t table1,table2 覆盖
tables:
- '%'
# 根据类型对字段类型打标签, 可以通过 column.tags.TAG 的 true/false 来判断当前列是否有该标签
# 主要对列进行分类,方便后续模板中的使用
typeTags:
# 示例,针对日期时间设置 jdbcType 标签,生成的代码中,如果有该标签,会指定 jdbcType 的值
jdbcType:
- DATE
- TIME
- TIMESTAMP
# 关键字包装,这里的示例针对 MySQL,不提供默认值,需要根据数据库语法进行设置,其中的 %s 为关键字(表名或列名)
keywordWrap: "`%s`"
# 数据库关键字,列举的关键字会进行包装处理,没有默认值,需要自己配置所有可能的关键字
keywords:
- order
- desc
# 附加属性
#【命令行】可以通过 -AbasePackage=com.company 覆盖或增加新属性
attrs: # 子目录(文件)可以通过 parent.parent...attrs.属性名 可以逐级向上使用属性
# 这里设置了一个基础包名
basePackage: io.mybatis.demo.mybatis
# 子目录(文件)
files:
# 文件名,可以 / 设置多级目录
- name: src/main
# 子目录(文件)
files:
- name: java
files:
# 包,可以多层,名称可以引用当前结构的所有属性,也可以使用 tables 数据表信息
- name: '${project.attrs.basePackage}'
# 设置类型为 package,尽可能都指定,默认会计算,默认为目录。包下面的默认都是包
type: PACKAGE
files:
# 包名
- name: mapper
files:
# 模板文件,下面 iter 对 tables 所有表进行迭代,因此这里的模板会根据表的数量进行循环生成
# 迭代循环时,单个迭代对象的默认名为 it,因此这里的 name 就是表名(类名形式)为前缀的 Mapper 接口
- name: '${it.name.className}Mapper.java'
# 使用的模板名,会从上面配置的 templates 下面查找
# 包含多级目录时,这里可以指定相对 templates 的路径
file: mapper.java
# 可选配置 iter, 迭代的数据对象,当前可选为 tables 为反射的数据库表信息
# iter 值使用 mvel 表达式取值,除 tables 外也可以对当前 yaml 中的集合类型进行迭代,例如 project.files
iter: tables
# 可选配置 iterName,默认值为 it,在模板和上面的 name 中可以使用改变量的值
# iterName: it
# 可选配置 filter, 绑定数据过滤器,使用 mvel 表达式,过滤条件不满足时不执行当前的操作,不生成相应的目录或文件
# filter: tables.size() > 0 # 仅仅是示例,size=0时本身也不会循环
# 可选配置 itFilter,迭代数据过滤器,使用 mvel 表达式,当指定 iter 时,对迭代的数据进行过滤
# 不满足条件时,只忽略当前的 it 数据,下面示例中当表名以 sys 为前缀时生成目录或代码
# iterFilter: it.name.original.o.startsWith("sys")
# 可选配置 enabled,默认 true,当前目录(文件)有效,会生成,设置为 false 时忽略
# enabled: true
# 可选配置 mode,默认值为 OVERRIDE,生成目录或文件时覆盖,可选值为:
# OVERRIDE: 覆盖
# ONCE: 只生成一次,或者如果目录或文件已存在时不生成(目录存在时,子文件也不会生成)
# MERGE: 合并已存在的文件和新生成的文件,需要满足规则才能合并
# mode: OVERRIDE
# 可选配置 times,默认值 1,默认情况下,模板只经过一次变量替换,有时存在多层变量嵌套时,执行多次才能全部替换
# times: 1
- name: model
files:
- name: '${it.name.className}.java'
# 此处有2种模板示例,分别列出来加了注释
file: model.java
# file: model-lombok.java
iter: tables
- name: service
files:
- name: '${it.name.className}Service.java'
file: service.java
iter: tables
- name: impl
files:
- name: '${it.name.className}ServiceImpl.java'
file: serviceImpl.java
iter: tables
- name: resources
files:
- name: mappers
files:
- name: '${it.name.className}Mapper.xml'
iter: tables
file: mapper.xml
在模板的 YAML 配置中,数据库相关的配置定义了生成代码的元数据,files 中的内容定义了项目的结构和生成代码的位置。
变化比较多的配置是具体的一个 files 配置,下面是上面大段注释部分的整理,file 属性说明:
name: '${it.name.className}Mapper.java'
模板文件,下面 iter 对 tables 所有表进行迭代,因此这里的模板会根据表的数量进行循环生成; 迭代循环时,单个迭代对象的默认名为it
,因此这里的 name 就是表名(类名形式)为前缀的 Mapper 接口。file: mapper.java
使用的模板名,会从上面配置的 templates 下面查找; 包含多级目录时,这里可以指定相对 templates 的路径。iter: tables
: 可选配置 iter, 迭代的数据对象,当前可选为 tables 为反射的数据库表信息; iter 值使用 mvel 表达式取值,除 tables 外也可以对当前 yaml 中的集合类型进行迭代,例如 project.files。iterName: it
可选配置 iterName,默认值为 it,在模板和上面的 name 中可以使用改变量的值。filter: tables.size() > 0
可选配置 filter, 绑定数据过滤器,使用 mvel 表达式,过滤条件不满足时不执行当前的操作,不生成相应的目录或文件。iterFilter: it.name.original.o.startsWith("sys")
可选配置 itFilter,迭代数据过滤器,使用 mvel 表达式,当指定 iter 时,对迭代的数据进行过滤; 不满足条件时,只忽略当前的 it 数据,下面示例中当表名以 sys 为前缀时生成目录或代码。enabled: true
可选配置 enabled,默认 true,当前目录(文件)有效,会生成,设置为 false 时忽略。mode: OVERRIDE
可选配置 mode,默认值为 OVERRIDE,生成目录或文件时覆盖,可选值为:OVERRIDE
: 覆盖,默认值ONCE
: 只生成一次,或者如果目录或文件已存在时不生成(目录存在时,子文件也不会生成)MERGE
: 合并已存在的文件和新生成的文件,需要满足规则才能合并
times: 1
可选配置 times,默认值 1,默认情况下,模板只经过一次变量替换,有时存在多层变量嵌套时,执行多次才能全部替换
上面示例中的
iterFilter: it.name.original.o.startsWith("sys")
中的it.name.original.o
很奇怪,下面模板介绍为什么会这么写。
# 7.3 模板文件介绍
目前代码模板使用 FreeMarker
模板引擎,点击查看 模板语言参考文档 (opens new window)。
针对 model 提供了 2 套模板:
model.java
普通的实体类模板model-lombok.java
使用 lombok 注解的实体类模板
修改配置文件下面的地方选择想要使用的文档:
# 在 model 包下面
- name: model
files:
# 有实体类代码,类名为表名的类形式
- name: '${it.name.className}.java'
# 此处有2种模板示例,具体类型看上面介绍
file: model.java
# file: model-lombok.java
iter: tables
当使用 lombok 版本的模板时,实体类使用了 @Getter
和 @Setter
注解,代码体中就不需要生成 getter 和 setter 的代码。
如果你想使用 lombok 的 @Data
或其他注解,你可以实现自己的模板(注意 import
相应的类型)。
# 7.4 ENV 和 SYS 可选值,使用示例
代码生成器配置和模板中都可以使用 ENV 和 SYS 变量,这些变量和运行的环境有关, 代码生成器运行时会输出当前环境的这些信息,想要修改为某些值时可以运行之后查找想要使用的名字。 例如下面展示的部分内容(示例为 macOS):
[main] TRACE Project - SYS可用参数:
[main] TRACE Project - SYS['user.country'] = CN
[main] TRACE Project - SYS['user.home'] = /Users/liuzh
[main] TRACE Project - SYS['user.dir'] = /Users/liuzh/IdeaProjects/rui/core
[main] TRACE Project - ENV可用参数:
[main] TRACE Project - ENV['USER'] = liuzh
[main] TRACE Project - ENV['PWD'] = /Users/liuzh/IdeaProjects/rui/core
[main] TRACE Project - ENV['HOME'] = /Users/liuzh
在模板中使用时,直接参考上面的写法,例如 ${SYS['user.home']}
和 ${ENV['HOME']}
。
# 7.5 代码生成器 rui-cli.jar
代码生成器提供了一个可执行 jar 文件: rui-cli.jar
后续会提供基于 java swing 的 GUI 客户端,可以通过 UI 简单操作生成代码。
可执行 jar 文件使用方式:
用法: java -cp "lib/*" io.mybatis.rui.cli.Main [options]
Options:
-p, --project
代码生成器YAML配置文件
-o, --output
输出目录,默认使用配置文件中的 path,输出目录如果带 .zip 后缀,就会将生成的代码导出为压缩包
-T, --templates
模板文件路径,默认和YAML相同位置,或者为当前执行目录的相对位置
--jdbc.dialect
数据库方言
Possible Values: [JDBC, HSQLDB, ORACLE, DB2, SQLSERVER, MARIADB, MYSQL]
--jdbc.driver
数据库驱动
--jdbc.url
数据库URL
--jdbc.user
数据库用户
--jdbc.password
数据库密码
-t, --tables
要获取的表名,支持模糊匹配(%),多个表名用逗号隔开,指定该值后会覆盖配置文件中的值
-A, -attrs
项目附加属性,会覆盖项目下的 attrs 配置
Syntax: -Akey=value
Default: {}
-h, --help
显示帮助信息
在上面命令中,推荐 -cp lib/*
使用 lib 目录下面的所有 jar 包,这样当你需要不同的数据库驱动时,
将 JDBC 驱动放到该目录下面即可。
下面演示代码生成器的使用过程。
# 7.6 使用文档
上面介绍了部分代码生成器的细节,最关键的内容是项目结构和代码模板, 这两部分内容需要理解上面的内容后,根据自己的项目进行设计和模板编写, 一旦编写好,只要项目结构和模板内容不变,这套模板就可以一直使用, 后续变化的地方就是 JDBC连接配置,指定要连的数据库和要获取的表信息, 因此除了代码生成器的初始配置和模板有一点难度外,后续的使用是非常简单的。
接下来我们以当前项目提供的模板为基础,介绍一下如果想应用到自己的项目,该如何修改配置,修改完配置之后如何生成项目结构和代码。
# 7.6.1 配置适配
# 7.6.1.1 生成代码的目录
在 project.yaml
中,path
定义了项目所在的路径(不含项目名),
示例中使用了默认值(不配置时也是改值)${SYS['user.dir']}/
,
这个目录和执行代码生成器命令时所在的目录一样,如果是第一次生成项目,
生成到当前目录也没有问题,如果是已经存在的项目,
就需要修改路径让代码可以直接生成到已有项目的目录结构中。
假设项目为 d:/idea-project/cms,cms 是项目名,此时的配置如下:
# 项目名,和真实的 cms 名字对应
name: cms
# 项目所在路径
path: d:/idea-project/
# 7.6.1.2 数据库配置
数据库连接的配置按照示例修改即可,平时使用时,最常见的变化时 tables
的值。
如果后续生成代码时不想重新生成已存在表的代码,就需要每次指定要生成的表的信息。
例如第一次的时候生成了所有 sys_user
, sys_role
等 sys
开头的表,此时可以配置为:
tables:
- sys%
假设后续要生成某几个表的,可以配置为具体的表名:
tables:
- account
- content
- comments
表名可以写多个,而且每个都可以是具体表名,也可以使用模糊匹配,使用 %
匹配任意个字符,使用 _
匹配单个字符。
# 7.6.1.3 包名修改
示例中为了展示 attrs
属性的用法,因此在这里配置了一个 basePackage
属性,这个属性在下面的包名 name
使用了,
根据自己的包名修改这里,例如:com.company.cms
,如果你的包和这里结构不一样,可以自己调整 files
适配自己的结构。
# 7.6.1.4 类名规则
在 mapper 包下面循环生成了每个表对应的 Mapper 接口,这里定义的名称为 '${it.name.className}Mapper.java'
,
表的类名
+Mapper
后缀作为接口名,如果你喜欢使用 Dao
后缀,就可以改为 '${it.name.className}Dao.java'
,
还需要注意修改所有使用(注入)该接口的地址,例如在 serviceImpl.java
模板中:
//省略其他
import ${project.attrs.basePackage}.mapper.${it.name.className}Dao;
//省略其他
@Service
public class ${it.name.className}ServiceImpl extends AbstractService<${it.name.className}, Long, ${it.name.className}Dao> implements ${it.name.className}Service {
}
只要保证模板内容和类型定义保持一致即可。
# 7.6.2 执行代码生成器
配置完成后,使用下面的命令生成代码:
java -cp "lib/*" io.mybatis.rui.cli.Main -p project.yaml
由于写此文档时使用的 macOS,因此下面的日志文件和这里预设的目录结构不同,后续更新为目录一致的输出
执行命令后,输出日志如下:
[main] TRACE Project - SYS可用参数:
[main] TRACE Project - SYS['gopherProxySet'] = false
#-----------------省略大量 SYS 属性-----------------------
[main] TRACE Project - SYS['http.proxyPort'] = 8889
[main] TRACE Project - ENV可用参数:
[main] TRACE Project - ENV['JAVA_ARCH'] = x86_64
#-----------------省略大量 ENV 属性-----------------------
[main] TRACE Project - ENV['_'] = /usr/bin/java
[main] DEBUG Project - 执行程序路径: /Users/liuzh/IdeaProjects/generator-cmd
[main] DEBUG Project - basedir变量: /Users/liuzh/IdeaProjects/generator-cmd
[main] DEBUG Project - yamlDir变量: /Users/liuzh/IdeaProjects/generator-cmd
[main] DEBUG Database - 获取数据库信息
[2021-05-30 17:40:37] [DEBUG] rui.pJ: Use [Hutool Console Logging] Logger As Default.
[main] DEBUG Database - 获取表: role
[main] TRACE Database - 记录列: id
[main] TRACE Database - 记录列: role_name
[main] DEBUG Database - 获取表: user
[main] TRACE Database - 记录列: id
[main] TRACE Database - 记录列: user_name
[main] TRACE Database - 记录列: user_age
[main] TRACE Database - 记录列: address
[main] DEBUG Database - 获取表: user_role
[main] TRACE Database - 记录列: id
[main] TRACE Database - 记录列: user_id
[main] TRACE Database - 记录列: role_id
[main] DEBUG Database - 通过 SQL 获取表的注释信息
[main] DEBUG Database - 执行 SQL: SELECT TABLE_NAME, TABLE_COMMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME in ( 'user_role','role','user' )
[main] DEBUG Database - 表: role - 角色
[main] DEBUG Database - 表: user - 用户
[main] DEBUG Database - 表: user_role - 用户和角色关联
[main] DEBUG Context - 生成项目路径: /Users/liuzh/IdeaProjects/
[main] DEBUG Context - 读取模板路径: mapper-templates
[main] DEBUG Generator - 已存在目录: /Users/liuzh/IdeaProjects/cms
[main] DEBUG Generator - 已存在目录: /Users/liuzh/IdeaProjects/cms/src/main
[main] DEBUG Generator - 已存在目录: /Users/liuzh/IdeaProjects/cms/src/main/java
[main] DEBUG Generator - 已存在包: io.mybatis.demo.mybatis
[main] DEBUG Generator - 已存在包: mapper
[main] DEBUG Generator - 初次创建文件: RoleMapper.java
[main] DEBUG Generator - 初次创建文件: UserMapper.java
[main] DEBUG Generator - 初次创建文件: UserRoleMapper.java
[main] DEBUG Generator - 已存在包: model
[main] DEBUG Generator - 初次创建文件: Role.java
[main] DEBUG Generator - 初次创建文件: User.java
[main] DEBUG Generator - 初次创建文件: UserRole.java
[main] DEBUG Generator - 已存在包: service
[main] DEBUG Generator - 初次创建文件: RoleService.java
[main] DEBUG Generator - 初次创建文件: UserService.java
[main] DEBUG Generator - 初次创建文件: UserRoleService.java
[main] DEBUG Generator - 已存在包: impl
[main] DEBUG Generator - 初次创建文件: RoleServiceImpl.java
[main] DEBUG Generator - 初次创建文件: UserServiceImpl.java
[main] DEBUG Generator - 初次创建文件: UserRoleServiceImpl.java
[main] DEBUG Generator - 已存在目录: /Users/liuzh/IdeaProjects/cms/src/main/resources
[main] DEBUG Generator - 已存在目录: /Users/liuzh/IdeaProjects/cms/src/main/resources/mappers
[main] DEBUG Generator - 初次创建文件: RoleMapper.xml
[main] DEBUG Generator - 初次创建文件: UserMapper.xml
[main] DEBUG Generator - 初次创建文件: UserRoleMapper.xml
rui-cli.jar 中包含了多个可以覆盖默认配置的参数,大部分参数仍然建议在配置文件中指定。
如果想要生成的代码导出为 ZIP 压缩包,只需要在上面的命令后面增加 -o cms.zip
即可在执行的目录中生成一个 cms.zip
压缩包文件:
java -cp "lib/*" io.mybatis.rui.cli.Main -p project.yaml -o cms.zip
执行命令后,最终生成 cms.zip
文件,文件结构如下:
$ unzip -v cms.zip
Archive: cms.zip
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
0 Defl:N 2 0% 05-30-2021 18:17 00000000 cms/
0 Defl:N 2 0% 05-30-2021 18:17 00000000 cms/src/
0 Defl:N 2 0% 05-30-2021 18:17 00000000 cms/src/main/
0 Defl:N 2 0% 05-30-2021 18:17 00000000 cms/src/main/java/
0 Defl:N 2 0% 05-30-2021 18:17 00000000 cms/src/main/java/io/
0 Defl:N 2 0% 05-30-2021 18:17 00000000 cms/src/main/java/io/mybatis/
0 Defl:N 2 0% 05-30-2021 18:17 00000000 cms/src/main/java/io/mybatis/demo/
0 Defl:N 2 0% 05-30-2021 18:17 00000000 cms/src/main/java/io/mybatis/demo/mybatis/
0 Defl:N 2 0% 05-30-2021 18:17 00000000 cms/src/main/java/io/mybatis/demo/mybatis/mapper/
177 Defl:N 135 24% 05-30-2021 18:17 bf55dc13 cms/src/main/java/io/mybatis/demo/mybatis/mapper/RoleMapper.java
177 Defl:N 135 24% 05-30-2021 18:17 46655d51 cms/src/main/java/io/mybatis/demo/mybatis/mapper/UserMapper.java
205 Defl:N 160 22% 05-30-2021 18:17 b161f496 cms/src/main/java/io/mybatis/demo/mybatis/mapper/UserRoleMapper.java
0 Defl:N 2 0% 05-30-2021 18:17 00000000 cms/src/main/java/io/mybatis/demo/mybatis/model/
991 Defl:N 438 56% 05-30-2021 18:17 a7ea4bb7 cms/src/main/java/io/mybatis/demo/mybatis/model/Role.java
1679 Defl:N 581 65% 05-30-2021 18:17 1ef86c27 cms/src/main/java/io/mybatis/demo/mybatis/model/User.java
1341 Defl:N 504 62% 05-30-2021 18:17 92c5bec1 cms/src/main/java/io/mybatis/demo/mybatis/model/UserRole.java
0 Defl:N 2 0% 05-30-2021 18:17 00000000 cms/src/main/java/io/mybatis/demo/mybatis/service/
235 Defl:N 153 35% 05-30-2021 18:17 efb596bd cms/src/main/java/io/mybatis/demo/mybatis/service/RoleService.java
235 Defl:N 153 35% 05-30-2021 18:17 59b608c0 cms/src/main/java/io/mybatis/demo/mybatis/service/UserService.java
267 Defl:N 177 34% 05-30-2021 18:17 5121a031 cms/src/main/java/io/mybatis/demo/mybatis/service/UserRoleService.java
0 Defl:N 2 0% 05-30-2021 18:17 00000000 cms/src/main/java/io/mybatis/demo/mybatis/service/impl/
442 Defl:N 218 51% 05-30-2021 18:17 26c22e04 cms/src/main/java/io/mybatis/demo/mybatis/service/impl/RoleServiceImpl.java
442 Defl:N 219 51% 05-30-2021 18:17 fdabfe3b cms/src/main/java/io/mybatis/demo/mybatis/service/impl/UserServiceImpl.java
490 Defl:N 247 50% 05-30-2021 18:17 742f3203 cms/src/main/java/io/mybatis/demo/mybatis/service/impl/UserRoleServiceImpl.java
0 Defl:N 2 0% 05-30-2021 18:17 00000000 cms/src/main/resources/
0 Defl:N 2 0% 05-30-2021 18:17 00000000 cms/src/main/resources/mappers/
435 Defl:N 252 42% 05-30-2021 18:17 afff9e3d cms/src/main/resources/mappers/RoleMapper.xml
574 Defl:N 277 52% 05-30-2021 18:17 920e9299 cms/src/main/resources/mappers/UserMapper.xml
505 Defl:N 253 50% 05-30-2021 18:17 ef08156b cms/src/main/resources/mappers/UserRoleMapper.xml
-------- ------- --- -------
8195 3930 52% 29 files
其他参数可以自己尝试。
# 7.7 总结
睿Rui是一个非常灵活易用的代码生成器,包含的功能细节非常的多,本篇文档旨在入门,还有很多内容没有展示出来,后续会针对睿Rui提供一些进阶使用文档,后续的计划如下:
- 【文档】编写自己的代码模板
- 【文档】项目结构和代码的配置
- 【文档】tableRules 表名、列名特殊配置配置和字典设置
- 【文档】MERGE 合并文件用法介绍
- 【文档】使用 睿Rui 生成完整项目
- 【直播】分享 睿Rui-cli 代码生成器配置和使用
- 【文档】睿Rui-tpl 代码模板生成器的使用文档(生成代码生成器配置的工具)
- 【直播】以比较火的某个框架作为示例使用 睿Rui-tpl
- 【文档】睿Rui-gui 代码生成器GUI客户端使用说明
- 【工具】睿Rui-idea-plugin IDEA插件,结合IDEA的datasource使用代码生成器
- 【工具】睿Rui-SaaS 代码生成器发布,提供模板市场