jCoder

jCoder 是基于团队规范,快速生成代码的工具

写在前言

有一些小伙伴再使用 jCoder 时,发生无法运行的问题,提示字符集不对。以往大家都重新安装 groovy 或者一顿折腾,最终搞定了这个问题

权德学习 Java 的过程中,也遇到了这个问题,找到了下面方法,指定字符集解决了无法运行的问题

 groovy --encoding=UTF-8 [option] 不乱码  (groovy --encoding=UTF-8 .\jCoder-v5.groovy)

jCoder 的使用

jCoder 目前是 5.0 版本,目前主要生成管理后台的 Controller 和 Qo,Qo 直接带说明,更加给力

jCoder V5 脚本

  • 2022 年 9 月 21 日

jCoder 升级到 4.0 版本,听取刘珍秀的建议,Qo 中设置了@NotNull 和@NotEmpty 的注解,规则为:

  1. CreateQo、EditQo、DeleteQo 等都增加了@NotNull 和@NotEmpty 注解,不需要的话自己删除一下
  2. QueryQo 没有设置@NotNull 和@NotEmpty

jCoder V4 脚本

  • 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

  1. 在 idea 的 tearminal 中敲groovy jCoder-v3.groovy
  2. 输入需要生成对象的 Entity 的名字,即 dao 的 entity 中,例如 BizCommunityEntity
  3. 回车,会在 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 V3 脚本

jCoder V4 脚本(推荐)

注意

因为 jCoder 是无脑生成的接口文档,接口文档自动通过 Swagger 同步至 ApiFox,那么后端人员要把无用的接口删除掉,此外,后端开发人员还有一些基本职责:

  1. 协助制作测试数据
  2. 协作在 ApiFox 编写测试用例,在开发、联调的过程中累积
  3. 配合执行计划任务
Last Updated:
Contributors: TerryQi