Jeecg生成的代码不合口味?来改动一下

前言

在使用Jeecg二开的过程中,体验到了代码生成器的便捷所在,非常的快速就能够基于数据库中的表生成出一套前后端都涵盖的CRUD代码来。但是Jeecg的模板并没有遵循RESTful风格规范,并且使用了Result.error来返回错误的情况而不是抛出异常来。如果我们能让生成出来的代码符合我们的口味,这也能让我们在随后的开发过程更加的舒适。

先看看官方文档

生成器官方文档:doc.jeecg.com/2043918
官方文档给出了Online表单中代码生成器模板的路径:jeecg-boot-module-system/jeecg.code-template-online(注意是online后缀的,无后缀的是已弃用的GUI的模板)

image.png

我们以一对多内嵌Table模板为示例进行演示,基于几个方面进行修改:

  1. 符合RESTful风格API
  2. 去掉接口的I前缀
  3. Mapper和Service接口去掉冗余的public修饰符
  4. ServiceImpl中使用@Resource进行Mapper注入,因为@Autowired对于Mapper在idea会爆红
  5. Controller的getById接口当未查询到数据时抛出异常而不是返回Result.error()
  6. 基于ResponseAdvice将返回值改为实体类型而不是Result<?>

首先进入jeecg-boot-module-system/jeecg.code-template-online如下图所选中的包

image.png

1. 符合RESTful风格API

打开controller模板${entityName}Controller.javai通过搜索功能分别进行修改

1
2
3
4
5
6
java复制代码@GetMapping(value = "/list")
@PostMapping(value = "/add")
@PutMapping(value = "/edit")
@DeleteMapping(value = "/delete")
@GetMapping(value = "/queryById")
@GetMapping(value = "/query${sub.entityName}ByMainId")

修改为

1
2
3
4
5
6
java复制代码@GetMapping("/list")
@PostMapping
@PutMapping
@DeleteMapping
@GetMapping
@GetMapping("/${sub.entityName}ByMainId")

打开vue.${entityName}.vuei搜索url关键词

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
vue复制代码url: {
list: '${urlPrefix}/list',
delete: '${urlPrefix}/delete',
deleteBatch: '${urlPrefix}/deleteBatch',
exportXlsUrl: '${urlPrefix}/exportXls',
importExcelUrl: '${urlPrefix}/importExcel',
},

修改为

url: {
list: '${urlPrefix}/list',
delete: '${urlPrefix}',
deleteBatch: '${urlPrefix}/batch',
exportXlsUrl: '${urlPrefix}/exportXls',
importExcelUrl: '${urlPrefix}/importExcel',
},

${entityName}Form.vuei

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
dart复制代码        url: {
add: "/${entityPackage}/${entityName?uncap_first}/add",
edit: "/${entityPackage}/${entityName?uncap_first}/edit",
<#list subTables as sub><#rt/>
${sub.entityName?uncap_first}: {
list: '/${entityPackage}/${entityName?uncap_first}/query${sub.entityName}ByMainId'
},
</#list>
}
}

修改为:

url: {
add: "zu/${entityName?uncap_first}",
edit: "zu/${entityName?uncap_first}",
<#list subTables as sub><#rt/>
${sub.entityName?uncap_first}: {
list: '/zu/${entityName?uncap_first}/${sub.entityName}ByMainId'
},
</#list>
}

还剩下vue.subTables.[1-n]SubTable.vuei

1
2
3
4
5
6
7
8
9
css复制代码url: {
listByMainId: '${urlPrefix}/query${sub.entityName}ByMainId',
},

修改为

url: {
listByMainId: '${urlPrefix}/${sub.entityName}ByMainId',
},

于上我们就完成了Jeecg中RESTful风格的模板调整啦,未完待续。

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%