jCoder
jCoder 是基于团队规范,快速生成代码的工具
写在前言
有一些小伙伴再使用 jCoder 时,发生无法运行的问题,提示字符集不对。以往大家都重新安装 groovy 或者一顿折腾,最终搞定了这个问题
权德学习 Java 的过程中,也遇到了这个问题,找到了下面方法,指定字符集解决了无法运行的问题
groovy --encoding=UTF-8 [option] 不乱码 (groovy --encoding=UTF-8 .\jCoder-v5.groovy)
jCoder 的使用
jCoder 目前是 5.0 版本,目前主要生成管理后台的 Controller 和 Qo,Qo 直接带说明,更加给力
- 2022 年 9 月 21 日
jCoder 升级到 4.0 版本,听取刘珍秀的建议,Qo 中设置了@NotNull 和@NotEmpty 的注解,规则为:
- CreateQo、EditQo、DeleteQo 等都增加了@NotNull 和@NotEmpty 注解,不需要的话自己删除一下
- QueryQo 没有设置@NotNull 和@NotEmpty
- 2023 年 3 月 30 日
主要是 Qo 里面增加了 required=true 或者 required=false 的设定
请到框架中同步吧
前提准备
与 jDaoMySQL 一样,jCoder 本质也就是一个 groovy 的脚本,读取一些参数,按照目录结构生成代码
要求使用 jCoder 前应该安装groovy
脚本
会生成哪些接口?
通过 jCoder 可以围绕一个对象生成增删改查的接口,通过 jCoder 可以确保后端接口的标准化,如果前端小伙伴看到后端管理后台的接口不规范,例如新建接口一会叫 create、一会叫 add、一会叫 save,可以找 TerryQi 投诉,后端一定确保全部接口的规范性
接口名 | 功能 | 备注 |
---|---|---|
create | 创建接口 | 不需要输入 id |
edit | 编辑接口 | 需要输入 id,我们理解创建和编辑是两个业务,在很多团队使用一个接口实现,但是目前我们的理解是新建、编辑接口的校验规则不同,参数不同,所以拆分为两个接口 |
get | 获取详情 | |
list | 获取列表,不分页 | 目前这个接口与 query 接口复用 qo,所以你看到请求中可以带 page 和 size,但并不生效 |
query | 获取列表,分页 | 默认分页数是 20 |
delete | 删除接口 | |
setStatus | 设置状态 | |
setSort | 设置顺序 |
当然,以上是后端默认生成的接口,可以结合业务,后端也许删除一部分接口(主要还是让前端看接口清晰一些,把无用接口删除)
此外,如果接口不满足要求,后端也会编写一些接口,例如 indexPage 接口就是首页接口等
如何运行 jCoder
- 在 idea 的 tearminal 中敲
groovy jCoder-v3.groovy
- 输入需要生成对象的 Entity 的名字,即 dao 的 entity 中,例如 BizCommunityEntity
- 回车,会在 controller 的 admin 包下生成 Controller,在 model 中生成 qo
D:\project\java\bgyyxserver>groovy jCoder-v3.groovy
workModuleFolder : D:\project\java\bgyyxserver\bgy-application\src\main\java
workModulePackage : com.isart.bgy
sdkModuleFolder : D:\project\java\bgyyxserver\bgy-application\src\main\java
sdkModulePackage : com.isart.bgy
/**
* 新版JCoder主要用于生成管理后台的crud,因此只要选择实体即可
* 我们的接口命名规划为api/[admin:管理后台接口;common:通用接口;app:WEB/APP/小程序/H5接口]
* 同理Controller的起名为[Entity]AdminController/[Entity]CommonController/[Entity]AppController
* 我们的基础思想是Request(也就是Qo)一般每个接口一个;Response一般抽象一下,分为:
* [Entity]Vo:代表通用的Vo,一般不缺少属性
* [Entity]ListVo:代表列表渲染的Vo,一般不会带json、html之类的字段
* [Entity]BaseVo:代表基础的Vo,可能比ListVo信息还要少,例如用户的BaseVo只有userId、realName、avatar信息
*/
Please input entity name, example : SysUserEntity
Entity : BizCommunityEntity
Your Entity is : BizCommunityEntity, created from mysql
create qo : D:\project\java\bgyyxserver\bgy-application\src\main\java\com\isart\bgy\model\qo\BizCommunityCreateQo.java
create qo : D:\project\java\bgyyxserver\bgy-application\src\main\java\com\isart\bgy\model\qo\BizCommunityDeleteQo.java
create qo : D:\project\java\bgyyxserver\bgy-application\src\main\java\com\isart\bgy\model\qo\BizCommunityEditQo.java
create qo : D:\project\java\bgyyxserver\bgy-application\src\main\java\com\isart\bgy\model\qo\BizCommunityGetQo.java
create qo : D:\project\java\bgyyxserver\bgy-application\src\main\java\com\isart\bgy\model\qo\BizCommunityQueryQo.java
create qo : D:\project\java\bgyyxserver\bgy-application\src\main\java\com\isart\bgy\model\qo\BizCommunitySetStatusQo.java
create qo : D:\project\java\bgyyxserver\bgy-application\src\main\java\com\isart\bgy\model\qo\BizCommunitySetSortQo.java
noPrefixEntityName : community
create Controller : D:\project\java\bgyyxserver\bgy-application\src\main\java\com\isart\bgy\controller\admin\BizCommunityAdminController.java
下载 jCoder
框架下面的 jCoder 是准确的,建议下载框架,copy 里面的 jCoder,这里可以下载学习
注意
因为 jCoder 是无脑生成的接口文档,接口文档自动通过 Swagger 同步至 ApiFox,那么后端人员要把无用的接口删除掉,此外,后端开发人员还有一些基本职责:
- 协助制作测试数据
- 协作在 ApiFox 编写测试用例,在开发、联调的过程中累积
- 配合执行计划任务