zoukankan      html  css  js  c++  java
  • Springboot @Valid 参数校验

    1. 常见实体类校验注解

    @Null 只能是null
    @NotNull 不能为null 注意用在基本类型上无效,基本类型有默认初始值
    @AssertFalse 必须为false
    @AssertTrue 必须是true
    
    字符串/数组/集合检查:(字符串本身就是个数组)
    @Pattern(regexp="reg") 验证字符串满足正则
    @Size(max, min) 验证字符串、数组、集合长度范围
    @NotEmpty 验证字符串不为空或者null
    @NotBlank 验证字符串不为null或者trim()后不为空
    
    数值检查:同时能验证一个字符串是否是满足限制的数字的字符串
    @Max 规定值得上限int
    @Min 规定值得下限
    @DecimalMax("10.8") 以传入字符串构建一个BigDecimal,规定值要小于这个值 
    @DecimalMin 可以用来限制浮点数大小
    @Digits(int1, int2) 限制一个小数,整数精度小于int1;小数部分精度小于int2
    @Digits 无参数,验证字符串是否合法
    @Range(min=long1,max=long2) 检查数字是否在范围之间
    这些都包括边界值
    
    日期检查:Date/Calendar
    @Post 限定一个日期,日期必须是过去的日期
    @Future 限定一个日期,日期必须是未来的日期
    
    其他验证:
    @Vaild 递归验证,用于对象、数组和集合,会对对象的元素、数组的元素进行一一校验
    @Email 用于验证一个字符串是否是一个合法的右键地址,空字符串或null算验证通过
    @URL(protocol=,host=,port=,regexp=,flags=) 用于校验一个字符串是否是合法URL
    

    2. 初始化一个Springboot项目

    3. 创建User实体类

    /**
     * @className: User
     * @Description: TODO
     * @author: ct
     * @date: 2021/8/13 10:57
     */
    @Data
    public class User {
    
    
        @NotNull
        private Integer id;
    
        @NotBlank
        private String userName;
    
        @NotBlank
        private String sex;
    
    }
    

    4. 创建DemoController

    /**
     * @className: DemoController
     * @Description: 获取用户数据
     * @author: ct
     * @date: 2021/8/13 10:45
     */
    @RestController
    public class DemoController {
    
        @Autowired
        private DemoService demoService;
    
        @GetMapping("/getUserInfo")
        public RespResult getUserInfo(@Valid User user, BindingResult bindingResult){
            return demoService.getUserInfo(user,bindingResult);
        }
    }
    
    

    5. 创建DemoService

    /**
     * @className: DemoService
     * @Description: TODO
     * @author: ct
     * @date: 2021/8/13 11:00
     */
    @Service
    public class DemoService {
    
        public RespResult getUserInfo(User user, BindingResult bindingResult) {
    
            // 参数校验
            if (bindingResult.hasErrors()) {
                System.err.println(bindingResult.getAllErrors());
                //这里可以抛出自定义异常,或者返回自定义类型是数据给前端提示
                return new RespResult(RespCode.FAIL.getCode(),"参数校验不合格");
            }
    
            return new RespResult(user);
        }
    
    
    }
    
    • RespResult 自定义返回类
  • 相关阅读:
    DC中为什么要用Uniquify?
    hdu 1596 find the safest road
    hdu2112 HDU Today
    hdu 2066 一个人的旅行
    poj 3026 Borg Maze
    poj 1979 Red and Black
    poj 1321 棋盘问题
    hdu 1010 Tempter of the Bone
    hdu 4861 Couple doubi
    codeforces584B Kolya and Tanya
  • 原文地址:https://www.cnblogs.com/book-CT/p/15138168.html
Copyright © 2011-2022 走看看