• SpringBoot 全局异常处理 @RestControllerAdvice +@ExceptionHandler 请求参数校验


    ControllerAdvice

    指示带注释的类辅助“控制器”。

    作为的特殊化@Component,允许通过类路径扫描自动检测实现类。

    通常用于定义@ExceptionHandler, @InitBinder@ModelAttribute 适用于所有@RequestMapping方法的方法。

    之一的annotations()basePackageClasses(), basePackages()或它的别名value() 可以被指定,以限定控制器,以协助的特定子集。当应用多个选择器时,将应用“或”逻辑-表示选定的控制器应至少匹配一个选择器。

    默认行为(即,如果不使用任何选择器使用),带@ControllerAdvice注释的类将帮助所有已知的Controller。

    请注意,这些检查是在运行时完成的,因此添加许多属性并使用多种策略可能会带来负面影响(复杂性,性能)。


    /**
    * SpringMVC统一异常处理
    * 注:@ControllerAdvice为Controller层增强器,其只能处理Controller层抛出的异常;
    * 由于代码间的层级调用机制 、异常的处理机制等,所以这里处理Controller层的异常,就相当于
    * 处理了全局异常
    * @author
    */

    @RestControllerAdvice
    public class GlobalExceptionHandler {


    @ExceptionHandler(MethodArgumentNotValidException.class)
    public Object bindException(MethodArgumentNotValidException e) {
    BindingResult bindingResult = e.getBindingResult();
    StringBuilder sb=new StringBuilder();
    sb.append("基础数据校验不通过:");
    for (FieldError fieldError : bindingResult.getFieldErrors()) {
    sb.append(" ");
    sb.append(fieldError.getDefaultMessage());
    }
    Map<String,Object> result=new HashMap<>();
    result.put("code","00000010");
    result.put("data",sb.toString());
    return result;
    }

    }


    @Length(min = 12,message = "订单号长度不正确")
    @NotBlank(message = "订单号不能为空")
    String orderId;
  • 相关阅读:
    git修改 config 配置用户名和邮箱
    Tranformer模型学习
    centos安装
    ubuntu cuda配置
    ubuntu安装python3.6
    flask后端部署
    linux基本操作
    python 基础数据结构
    文本特征选择
    常用笔记
  • 原文地址:https://www.cnblogs.com/xiqoqu/p/12016770.html
Copyright © 2020-2023  润新知