使用方式
- 启动项目后访问本地接口文档地址 http://{localhost}:{post}/doc.html
- 在文档中找到逆向工程-开发人员接口

首次代码生成
- 点击代码生成接口-> 调试 配置所需参数
- 参数介绍
- author 作者
- backageName 生成文件的包名
- modulesName 生成的模块名称 如 user、dept、role
- databaseName 生成文件的数据库名, 为了开发人员不输错 采用下拉框显示。后面会将如果修改这些默认值
- tableName 生成的表名,如果要在同一个模块下生成多个表的代码 以英文逗号分隔 如 auth_user,auth_user_dept
- idType 生成表的注解类型 如 自增 uuid 雪花 mybatis_plus 类型 如不清楚 查询 mybatis_plus官方文档
- tablePrefix 表前缀 如果我们的表是有前缀的,例如 auth_user 而生成的类想是User开头 而不是 AuthUser 则需要填写改字段。会自动去掉前缀
- filesPrefix 表字段前缀 如果生成的表里面每个字段也有前缀 而我们想最终生成的文件实体类去掉这些前缀 则需要填写该字段。会自动去掉前缀 例如 abc_user_id 填写abc 后 生成的字段 就是 String UserId
- 点击发送,代码就会自动生成到项目里面我们设置的模块里面
- 生成后代码
- 生成后的接口
重新生成
- 如果某个表中字段进行编辑 新增|修改|删除 需要重新生成代码
- 点击重新生成表结构接口、代码就会重新生成
- 重新生成的代码只生成 实体类po、mapper、xml 其他文件不会重新生成 所以需要开发人员遵循对应的规范 详情查看 编码规范要求 里面有介绍
修改接口默认值
- 打开kunpeng-common -> framework-core -> com.kunpeng.framework.entity.po 中的 GeneratorPO 实体类
- 在该类里面修改成自己所需的默认值
@Data
@ApiModel(value="GeneratorPO", description="GeneratorPO")
public class GeneratorPO {
@ApiModelProperty(value = "作者", required = true, example = "lipeng")
private String author;
@ApiModelProperty(value = "数据库", required = true, allowableValues = "kunpeng_auth,kunpeng_bpm", allowEmptyValue = true)
private String databaseName;
@ApiModelProperty(value = "包名 默认 com.kunpeng.framework.modules", example = "com.kunpeng.framework.modules")
private String backageName = "com.kunpeng.framework.modules";
@ApiModelProperty(value = "模块名", required = true)
private String modulesName;
@ApiModelProperty(value = "数据库表名称", required = true, example = "[\"auth_user\", \"auth_menu\"]" )
private List<String> tableName;
@ApiModelProperty(value = "主键策略", required = true, example = "ASSIGN_UUID")
private IdType idType;
@ApiModelProperty(value = "表前缀")
private List<String> tablePrefix;
@ApiModelProperty(value = "字前缀")
private List<String> filesPrefix;
}
说明
框架默认生成是没有server接口层的 作者建议如果没有多实现、没必要非要加、写教学式代码。
如果想要生成带server接口层的代码、修改以下配置即可 修改framework-core包下KPMyBatisPlusNew 文件里面的内容
- 修改 configurePackage 方法、
private Consumer<PackageConfig.Builder> configurePackage(String path, String packName) {
return builder -> {
builder.parent(packName)
.controller("controller")
.service("service") # 这里不需要动
.serviceImpl("service") #这里改成 service.impl
.entity("po")
.mapper("mapper")
.xml("mapper.xml")
.pathInfo(Collections.singletonMap(OutputFile.xml, KPStringUtil.format("{0}/src/main/resources/mapper/{1}", path, packName.substring(packName.lastIndexOf(".") + 1, packName.length()))));
};
}
- 修改 configureTemplate 方法
private Consumer<TemplateConfig.Builder> configureTemplate() {
return builder -> {
builder.disable(TemplateType.SERVICE)
.controller("freemarker/controller.java")
// .service(null) #这里的注释打开
.serviceImpl("freemarker/serviceImpl.java")
.mapper("freemarker/mapper.java")
.entity("freemarker/entity.java")
.xml("freemarker/mapper.xml");
};
}