Spring参数注解,支持数组入参(List)校验

Spring参数注解,支持数组入参(List)校验

1、controller类增加@Validated注解,对应的数组参数增加@Valid注解。

javascript 复制代码
@Validated
@RestController
@RequestMapping("/parent")
public class ParentController {

  private FatherRepository fatherRepository;

  /**
   * DI
   */
  public ParentController(FatherRepository fatherRepository) {
    this.fatherRepository = fatherRepository;
  }

  @PostMapping("/test")
  public void test(@RequestBody @Valid List<Father> fathers) {

  }
}

2、对返回的校验信息异常进行全局捕获,封装后返回。

java 复制代码
@RestControllerAdvice
@Component
public class ControllerExceptionHandler {

  /**
   * handle controller methods parameter validation exceptions
   *
   * @param exception ex
   * @return wrapped result
   */
  @ExceptionHandler
  @ResponseBody
  @ResponseStatus(HttpStatus.OK)
  public DataContainer handle(ConstraintViolationException exception) {

    Set<ConstraintViolation<?>> violations = exception.getConstraintViolations();
    StringBuilder builder = new StringBuilder();
    for (ConstraintViolation<?> violation : violations) {
      builder.append(violation.getMessage());
      break;
    }
    DataContainer container = new DataContainer(CommonCode.PARAMETER_ERROR_CODE, builder.toString());
    return container;
  }
}

参考 https://stackoverflow.com/questions/28150405/validation-of-a-list-of-objects-in-spring

相关推荐
bearpping8 小时前
Java进阶,时间与日期,包装类,正则表达式
java
邵奈一8 小时前
清明纪念·时光信笺——项目运行指南
java·实战·项目
sunwenjian8869 小时前
Java进阶——IO 流
java·开发语言·python
sinat_255487819 小时前
读者、作家 Java集合学习笔记
java·笔记·学习
墨香幽梦客9 小时前
API集成技术规范:RESTful与GraphQL在企业系统对接中的应用对比
后端·restful·graphql
皮皮林5519 小时前
如何画出一张优秀的架构图?(老鸟必备)
java
百锦再9 小时前
Java 并发编程进阶,从线程池、锁、AQS 到并发容器与性能调优全解析
java·开发语言·jvm·spring·kafka·tomcat·maven
森林猿9 小时前
java-modbus-读取-modbus4j
java·网络·python
tobias.b9 小时前
计算机基础知识-数据结构
java·数据结构·考研
reembarkation10 小时前
光标在a-select,鼠标已经移出,下拉框跟随页面滚动
java·数据库·sql