开发规范~参数校验异常异常返回提示切面

Posted 张子行的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开发规范~参数校验异常异常返回提示切面相关的知识,希望对你有一定的参考价值。

前言

曾几何时谁不是从一句 Hello Wrod 开始的秃头之旅呢,学习前期讲究代码能跑通就行,到了后期慢慢的开始去研究代码的优雅之道,什么设计模式啊、怎么使用最少的代码去实现一个功能。本文的内容在于帮助开发人员高效的对参数进行校验。

谏言

越简单的代码越高效,这个是我上岗遇到的第一个 IT 师傅说的,现已牢记于心也送给大家,不喜勿喷哦。

参数校验高级处理

直接编写环切的切面作用于参数校验不通过的异常就行,用到的就是 @ControllerAdvice 这个注解,至于 @ControllerAdvice 的生效时机,在我之前剖析Spring Mvc 源码的时候里面有详细的介绍。传送门

@Slf4j
@ControllerAdvice
@ResponseBody
public class MethodArgumentNotValidHandel 
    @ExceptionHandler(value = MethodArgumentNotValidException.class)
    public Result MethodArgumentNotValidHandler(HttpServletRequest request,
                                                MethodArgumentNotValidException exception)
        JSONObject errorMsg = new JSONObject();
        for (FieldError error : exception.getBindingResult().getFieldErrors()) 
            errorMsg.putOnce(error.getField(), error.getDefaultMessage());
            log.error(request.getRequestURI() + " 参数校验错误:" + errorMsg);
        
        return Result.failed(exception.getBindingResult().getFieldError().getDefaultMessage());
    

参数校验

直接在接口的接受参数上加上 @Validated 注解即可。至于校验

然后在TrainOrder上对需要校验的字段,加上注解校验即可,message为异常提示信息。

效果

当存在校验不通过的字段时,会返回该字段的异常提示信息,直至全部校验通过

以上是关于开发规范~参数校验异常异常返回提示切面的主要内容,如果未能解决你的问题,请参考以下文章

开发规范~参数校验异常异常返回提示切面

.NET Core统一参数校验异常处理结果返回功能实现

.NET Core统一参数校验异常处理结果返回功能实现

.NET Core统一参数校验异常处理结果返回功能实现

.NET Core统一参数校验异常处理结果返回功能实现

hibernate-validator校验参数(统一异常处理)