接口参数校验教程
一、在字段上可以使用这个注解来设置校验
@Null:被注释的元素必须为null
 @NotNull:被注释的元素不能为null
 @AssertTrue:该字段只能为true
 @AssertFalse:该字段的值只能为false
 @Min("value","message"):被注释的元素必须是一个数字,其值必须大于等于指定的最小值
 @Max("value","message"):被注释的元素必须是一个数字,其值必须小于等于指定的最大值
 @DecimalMin("value","message"):被注释的元素必须是一个数字,验证小数的最小值
 @DecimalMax("value","message"):被注释的元素必须是一个数字,验证小数的最大值
 @Size(max,min):查该字段的size是否在min和max之间,可以是字符串、数组、集合、Map等
 @Past:被注释的元素必须是一个过去的日期
 @Future:被注释的元素必须是一个将来的日期
 @Pattern(regexp = “[abc]”):被注释的元素必须符合指定的正则表达式。
 @Email:被注释的元素必须是电子邮件地址
 @Length(max=5,min=1,message=“长度在1~5”):检查所属的字段的长度是否在min和max之间,只能用于字符串
 @NotEmpty:被注释的字符串必须非空
 @Range:被注释的元素必须在合适的范围内
 @NotBlank:不能为空,检查时会将空格忽略
 @NotEmpty:不能为空,这里的空是指空字符串

二、然后在接口上标注@Valid

三、内部成员变量类
如果只这样设置了,那主类下的成员变量类的字段上即便加上@Max注解也不会被校验,还需要给成员变量类加上@Valid注解

四、加入MethodArgumentNotValidException到统一异常检测类
@RestControllerAdvice(basePackages = {"com.quickstart.myself"})
@Slf4j
public class BusinessExceptionHandle {
    @ExceptionHandler(MethodArgumentNotValidException.class)
    public <T> BusinessResponseEntity<T> handleMethodArgumentNotValidException(MethodArgumentNotValidException e) {
        log.error("##########MethodArgumentNotValidException");
        String msg = "未知的参数异常";
        BindingResult bindingResult = e.getBindingResult();
        if (bindingResult.hasErrors()) {
            msg = bindingResult.getAllErrors().stream().map(error -> error.getDefaultMessage()).collect(Collectors.joining());
        }
        log.error(msg);
        return BusinessResponseEntity.error(msg);
    }
}演示:













![[CVPR 2023] Imagic:使用扩散模型进行基于文本的真实图像编辑](https://img-blog.csdnimg.cn/img_convert/5c990ea9f7674e7e1bab2c127615339c.png)






