前言
在使用Jeecg二开的过程中,体验到了代码生成器的便捷所在,非常的快速就能够基于数据库中的表生成出一套前后端都涵盖的CRUD代码来。但是Jeecg的模板并没有遵循RESTful风格规范,并且使用了Result.error来返回错误的情况而不是抛出异常来。如果我们能让生成出来的代码符合我们的口味,这也能让我们在随后的开发过程更加的舒适。
先看看官方文档
生成器官方文档:doc.jeecg.com/2043918
官方文档给出了Online表单中代码生成器模板的路径:jeecg-boot-module-system/jeecg.code-template-online
(注意是online后缀的,无后缀的是已弃用的GUI的模板)
我们以一对多内嵌Table模板为示例进行演示,基于几个方面进行修改:
- 符合RESTful风格API
- 去掉接口的I前缀
- Mapper和Service接口去掉冗余的public修饰符
- ServiceImpl中使用@Resource进行Mapper注入,因为@Autowired对于Mapper在idea会爆红
- Controller的getById接口当未查询到数据时抛出异常而不是返回Result.error()
- 基于ResponseAdvice将返回值改为实体类型而不是Result<?>
首先进入jeecg-boot-module-system/jeecg.code-template-online如下图所选中的包
1. 符合RESTful风格API
打开controller模板${entityName}Controller.javai
通过搜索功能分别进行修改
@GetMapping(value = "/list")
@PostMapping(value = "/add")
@PutMapping(value = "/edit")
@DeleteMapping(value = "/delete")
@GetMapping(value = "/queryById")
@GetMapping(value = "/query${sub.entityName}ByMainId")
复制代码
修改为
@GetMapping("/list")
@PostMapping
@PutMapping
@DeleteMapping
@GetMapping
@GetMapping("/${sub.entityName}ByMainId")
复制代码
打开vue.${entityName}.vuei搜索url关键词
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
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
url: {
listByMainId: '${urlPrefix}/query${sub.entityName}ByMainId',
},
修改为
url: {
listByMainId: '${urlPrefix}/${sub.entityName}ByMainId',
},
复制代码
于上我们就完成了Jeecg中RESTful风格的模板调整啦,未完待续。
近期评论