【Validation】@Validated和@Valid的区别和使用

概述

  1. @Valid是JSR303声明的,Hibernate validation对其进行实现
  2. @Validated是只用Spring Validator校验机制使用

区别

注解位置

@Validated:用在类型、方法和方法参数上。但不能用于成员属性(field)
@Valid:可以用在方法、构造函数、方法参数和成员属性(field)上

分组校验

@Validated 提供分组功能

组序列

@Validated 提供

嵌套校验

@Valid支持

使用

  1. 批量操作,批量数量控制,对象校验
@RequestMapping(value = "/agent/deploy",method= RequestMethod.POST)
public ApiResult batchDeploy(@Valid @RequestBody @Size(min = 1,max = 20,message = "可选择的批量操作范围在1~20") AgentDeployDto[] dtos) {
      ...
}

参考

Springboot @Validated和@Valid的区别 及使用

原文地址:https://www.cnblogs.com/zendwang/p/springboot-annotion-validated-valid-difference-usage.html