从零搭建若依(Ruoyi-Vue)管理系统(12)--问题总结和之前章节优化

本章结束后对应的节选代码文件:Gangbb-Vue-12-13-Login(与13章合并)
https://github.com/Gang-bb/Gangbb-Vue
历史遗留TODO:

  • 第四章
  1. 登录日志还未实现。(到登录和权限模块完成)
  2. LogAspect从缓存获取当前的用户信息使用模拟的数据(到登录和权限模块完成)
  • 第十一章
  1. 需要在Spring Security中注册的登录鉴权逻辑处理类、JWT处理的过滤器、退出登录处理类(到登录和权限模块完成)

本章将留下TODO:

本章将解决TODO:

1. 错误返回处理和异常捕捉相关优化修改

修改统一结果返回类ApiRestResponse, 让错误抛出信息更清晰更灵活。

修改该方法 error(String code, String msg)

/**
* 返回错误消息
* @param code 系统自定义状态码
* @param msg 错误信息
* @return         
 */
public static ApiRestResponse error(String code, String msg)
    {
        // 如果填了错误信息 错误信息 = 状态码对应的信息 + 输入的信息
        if(StringUtils.isNotEmpty(code) && StringUtils.isNotEmpty(msg)){
            String codeDefaultMsg = MessageUtils.getMessageByCode(code);
            if(!msg.equals(codeDefaultMsg)){
                msg = codeDefaultMsg + "。[具体信息] :" + msg;
            }
        }else {
            return ApiRestResponse.error();
        }
        log.error(msg);
        return new ApiRestResponse(code, msg);
    }

MessageUtils也修改了一些抛出错误部分!

2. 参数校验专题

2.1 添加pom.xml

<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
</dependency>

2.2 实现思路

主要思路就是通过 JSR 303 基本的校验规则相关注解 在接口中注释参数。校验不通过的结果,统一通过GlobalExceptionHandler截获相关的异常,然后给前端和用户良好的错误信息返回。

关于参数校验更多细节可以看官方文档。

Hibernate Validator中文文档:https://docs.jboss.org/hibernate/validator/4.2/reference/zh-CN/html_single/#preface

测试时候记得在Spring Secutity的配置文件SecurityConfig中把。url权限打开。

image-20210715153055083

所有常用的设置请求参数的校验用例都在TestParameterController

// TestParameterController 代码请看源码

GlobalExceptionHandler捕捉了以下异常:

HttpMessageNotReadableException  --> post请求没有填写RequestBody情况

MethodArgumentNotValidException  --> @Valid @RequestBody + 封装请求参数对象 (对应/test/param /test/param5 /test/param6)情况

MissingServletRequestParameterException --> 校验注解 + @RequestParam + 变量 (对应/test/param2)情况

BindException  --> get/post请求 参数写在Query Params(对应/test/param3 /test/param4)情况

ConstraintViolationException --> @Valid @RequestParam 参数校验异常捕捉

HttpMessageNotReadableException --> 请求参数获取异常(一般是用户没填RequestBody)
....

日志配置文件中也增加了一些多余的参数校验的打印输出过滤。(强迫症就是喜欢干净的控制台输出)

image-20210715153303254

3.修改一些之前文件的

  • package com.gangbb.core.model.vo.TableDataInfo更名为TableDataInfoVO并移动到package com.gangbb.core.model.vo目录下。

  • PageDTOTableSupport也修改了位置和实现内容,BaseController修改了实现内容,并删除package com.gangbb.core.model.page目录

  • package com.gangbb.core.model.dao这个路径删除,里面的文件换到package com.gangbb.core.mapper

  • package com.gangbb.test.model.dao里的文件移到package com.gangbb.test.mapper并删除该文件

  • package com.gangbb.core.config.ApplicationConfig中的mapper扫描路径需要改:@MapperScan("com.gangbb.**.mapper")

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值