依赖
org.hibernate hibernate-validator 6.0.1.Final
切片效验
@RestControllerAdvice
public class CommonExceptionHandler {
@ExceptionHandler({MethodArgumentNotValidException.class})
@ResponseStatus(HttpStatus.OK)
@ResponseBody
public Result handleMethodArgumentNotValidException(MethodArgumentNotValidException ex) {
BindingResult bindingResult = ex.getBindingResult();
StringBuilder sb = new StringBuilder("校验失败:");
for (FieldError fieldError : bindingResult.getFieldErrors()) {
sb.append(fieldError.getField()).append(":").append(fieldError.getDefaultMessage()).append(", ");
}
String msg = sb.toString();
return Result.fail(BusinessCode.参数校验失败, msg);
}
@ExceptionHandler({ConstraintViolationException.class})
@ResponseStatus(HttpStatus.OK)
@ResponseBody
public Result handleConstraintViolationException(ConstraintViolationException ex) {
return Result.fail(BusinessCode.参数校验失败, ex.getMessage());
}
}
@Valid和@Validated区别 底层都是 Hibernate Validator
| 区别 | @Valid | @Validated |
|---|---|---|
| 提供者 | JSR-303规范 | Spring |
| 是否支持分组 | 不支持 | 支持 |
| 标注位置 | METHOD, FIELD, CONSTRUCTOR, PARAMETER, TYPE_USE | TYPE, METHOD, PARAMETER |
| 嵌套校验 | 支持 | 不支持 |
@Bean
public Validator validator() {
ValidatorFactory validatorFactory = Validation.byProvider(Hibernatevalidator.class)
.configure()
// 快速失败模式
.failFast(true)
.buildValidatorFactory();
return validatorFactory.getValidator();
}
常用注解
@Length(min = 2, max = 20, message = "姓名在2-10个字母之间")
@NotEmpty
private String name;
@Pattern(regexp = "1[0-9]{10}", message = "请输入正确的手机号")
private String phone;
@Range(min = 0, max = 120, message = "年龄在0到120之间")
private Integer age;
@NotEmpty //字符串、集合、数组 字符串不能为空,集合数组里面的元素个数不能为0
@Size(min =,max = ) //字符串、集合、数组 校验对象的值在min和max区间内,如字符长度、集合大小
注意
@RequestBody 会变成Post 请求windows 主机不区分大小写 linux 不区分url 可以 - _只能加在方法上的参数上 可接口类上 加载对象上面不生效 草稿
网址 http://www.chenggongla.com/studio/ 和 http://www.chenggongla.com/Studio/ 是不一样的,后者有一个大写字母,会无法访问。那么网址链接是否区分大小写呢?
URL的结构是:[协议]/[域名]/[路径]
协议和域名部分是不区分大小写的,但是路径部分则根据服务器平台而定。Windows 和 Mac OS X 系统是不区分大小写的,而采用UNIX和Linux系的服务器系统是区分大小写的,请大家要注意。
参考文章https://juejin.cn/post/6856541106626363399#heading-14
官方文档



