Spring框架提供了接口参数校验的注解。下面是相关注解:

看下@Validated注解源码
@Target({ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Validated {
上面说明作用域:类、方法、参数上。
@Validated作用在方法参数上,就会对这个参数进行注解规则注解的校验:
验证的User内部的注解校验规则
public void testArgsAnno(@Validated User user){
}
@Data
public class User {
@NotNull(message = "名字不为空")
private String name;
@Max(value = 10,message = "用户区域不得大于10")
@Min(value = 1,message = "用户区域不得小于0")
private Integer areaId;
}
此时如果请求接口,响应信息如下:这不是我们期望的结果!
{
"timestamp": "2022-12-26T10:24:04.056+00:00",
"status": 400,
"error": "Bad Request",
"path": "/abc/efg/testArgsAnno"
}
调整异常响应信息
我们一般在全局异常捕获BindException,这个异常!
@ExceptionHandler({BindException.class})
@ResponseBody
public ResponseEntity BindException(HttpServletRequest req, BindException e) {
logger.error("方法参数验证失败:{}", e.getMessage());
BindingResult bindingResult = e.getBindingResult();
return ResponseEntity.badRequest().body(bindingResult.getFieldError().getDefaultMessage());
}
测试

其他注解
@JsonFormat Jackson包下的时间格式工具
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
private Date date;
特殊说明: 以上文章,均是我实际操作,写出来的笔记资料,不会盗用别人文章!烦请各位,请勿直接盗用!转载记得标注来源!