首页 > 其他分享 >SpringBoot使用@Validation校验实体参数

SpringBoot使用@Validation校验实体参数

时间:2022-12-04 16:59:09浏览次数:36  
标签:null SpringBoot 实体 校验 必须 不能 注解 Validation

在做前后端分离时,需要提供接口给前端,那么接口的字段实体校验就显得尤为重要了

  • 在需要实体校验的实体类前加上@Validated @RequestBody注解

  • 是校验的实体类的字段上加入相关的校验注解

注解功能
@AssertFalse 可以为null,如果不为null的话必须为false
@AssertTrue 可以为null,如果不为null的话必须为true
@DecimalMax 设置不能超过最大值
@DecimalMin 设置不能超过最小值
@Digits 设置必须是数字且数字整数的位数和小数的位数必须在指定范围内
@Future 日期必须在当前日期的未来
@Past 日期必须在当前日期的过去
@Max 最大不得超过此最大值
@Min 最大不得小于此最小值
@NotNull 不能为null,可以是空
@Null 必须为null
@Pattern 必须满足指定的正则表达式
@Size 集合、数组、map等的size()值必须在指定范围内
@Email 必须是email格式
@Length 长度必须在指定范围内
@NotBlank 字符串不能为null,字符串trim()后也不能等于“”
@NotEmpty 不能为null,集合、数组、map等size()不能为0;字符串trim()后可以等于“”
@Range 值必须在指定范围内
@URL 必须是一个URL
  • 实体校验异常捕获,在有@RestControllerAdvice注解的类里创建异常处理方法

    • @ResponseStatus(HttpStatus.BAD_REQUEST)
          @ExceptionHandler(value = MethodArgumentNotValidException.class)
          public Result handler(MethodArgumentNotValidException e){
              log.error("实体校验异常:============={}");
              BindingResult bindingResult = e.getBindingResult();
              ObjectError objectError = bindingResult.getAllErrors().stream().findFirst().get();
              return Result.fail(objectError.getDefaultMessage());
          }
      

@NotEmpty和@NotBlank和@NotNull

  • @NotNull:不能为null,但可以为empty,用在基本类型上
  • @NotEmpty:不能为null,而且长度必须大于0,用在集合类上面
  • @NotBlank:只能作用在String上,不能为null

标签:null,SpringBoot,实体,校验,必须,不能,注解,Validation
From: https://www.cnblogs.com/xupeixuan/p/16950151.html

相关文章

  • SpringBoot集成数据传输加密
    前言近期在对开发框架安全策略方面进行升级优化,提供一些通用场景的解决方案,本文针对前后端数据传输加密进行简单的分享,处理流程设计如下图所示,本加密方法对原有项目兼容性......
  • springboot+spring-session
    1.实现背景  测试环境上部署了一个单机项目,项目的context-path为空,之后再经过nginx的转发进行部署,项目可以正常进行登录等等一系列操作;生产环境跟测试环境代码完全相......
  • SpringBoot集成数据传输加密
    前言近期在对开发框架安全策略方面进行升级优化,提供一些通用场景的解决方案,本文针对前后端数据传输加密进行简单的分享,处理流程设计如下图所示,本加密方法对原有项目兼容性......
  • springboot中如何向redis缓存中存入数据
    packagecom.hope;importcom.fasterxml.jackson.core.JsonProcessingException;importcom.fasterxml.jackson.databind.ObjectMapper;importcom.hope.domain.User;impor......
  • Springboot学习——路径参数
    一、场景输入不同的路径,调用不同的方法。例如,视频网站中,路径输入不同的模块,调用不同的视频二、使用方法@PathVariable参数表示该参数要从路径中获取//将需要输入的......
  • Java:SpringBoot统一异常处理和404异常
    原理@ControllerAdvice+@ExceptionHandler统一处理应用级别的异常自定义ErrorController处理容器级别的异常,例如:404异常统一返回格式packagecom.github.mouday.c......
  • Springboot整合策略模式概念->使用场景->优缺点->企业级实战
    一、前言策略模式可能是在工作中使用最多的,也是在面试中最常提到的,代码重构和优化的必备!小编之前也是一直说,其实没有真正的实战;最近有了机会实战了一下,来分享一下使用心得......
  • springboot03(请求和响应)
    一、@RequestMapping("/user"):请求映射路径的解析:总结:一个"公共"的请求路径"前缀"1.1代码块解析:有@RequestMapping("/user")和@RequestMapping("/save")/@Reques......
  • Springboot 使用 Async (内置线程池)执行异步任务(对比WebAsyncTask的使用)
    使用Async执行异步任务@SpringBootApplication@EnableAsyncpublicclassApplication{publicstaticvoidmain(String[]args){SpringApplication.run(Applicati......
  • SpringBoot集成DingTalk钉钉机器人实现消息同步/异步预警推送1.0版本
    V2.0版本新增支持以下功能新增Dinger层对消息对象配置指定钉钉机器人新增Dinger层统一管理消息对象,​​仅支持text和markdown格式​​支持xml方式配置支持注解方式配置新增......