Spring Validation

本文介绍了如何在Spring Boot应用中使用Validation框架进行参数验证,并展示了如何添加依赖、在控制器中添加@Validated注解、POJO中的注解设置以及在全局异常处理器中处理BindException。
摘要由CSDN通过智能技术生成
  • 关于Validation框架的基本使用:
    • 添加依赖
    • 在控制器类中处理请求的方法的被验证的参数(封装的对象)之前添加@Validated / @Valid
    • 在参数的类型(封装的类型)的属性之前添加验证注解
    • 在统一处理异常的类中对BindException进行处理
  • 添加依赖
<!-- Spring Boot Validation:验证请求参数的基本格式 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>
  • CategoryController处理请求的方法的参数之前添加@Validated / @Valid注解:
@PostMapping("/add-new")
// ===== 在以下方法的参数前添加@Validated / @Valid注解 =====
public JsonResult<Void> addNew(@Validated CategoryAddNewDTO categoryAddNewDTO) {
    categoryService.addNew(categoryAddNewDTO);
    return JsonResult.ok();
}
  • pojo中的,要在此类中添加@NotNull等注解
@Data
public class CategoryAddNewDTO implements Serializable {
    @NotNull(message = "添加类别失败,必须填写类别名称!") // 新增
    private String name;
    
    // ===== 其它原有代码 =====
}
  • State中添加对应“请求参数格式错误”的枚举值:
public enum State {
    OK(20000),
    // ===== 下行为新增 ======
    ERR_BAD_REQUEST(40000), // 客户端引起的--请求参数格式错误
    // ===== 其它原有代码 =====
}
  • GlobalExceptionHandler中添加新的处理异常的方法:
@ExceptionHandler(BindException.class)
public JsonResult<Void> handleBindException(BindException ex) {
    List<FieldError> fieldErrors = ex.getBindingResult().getFieldErrors();
    StringBuilder stringBuilder = new StringBuilder();
    for (FieldError fieldError : fieldErrors) {
        stringBuilder.append(";");
        stringBuilder.append(fieldError.getDefaultMessage());
    }
    String message = stringBuilder.substring(1);
    return JsonResult.fail(State.ERR_BAD_REQUEST, message);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值