JSR303校验
1.给Bean添加校验注解并定义自己的message提示
2.开启校验功能@Vaild
效果:校验错误会有默认的响应
3.给校验的bean后紧跟一个BindingResult,就可以获取到校验的结果
4.分组校验(多场景的复杂校验)
1)@NotBlank(message = "品牌名不能为空",groups = {AddGroup.class,UpdateGroup.class})
给校验注解标注什么情况下需要进行校验
2)@Validated({AddGroup.class})
3)默认没有指定分组的校验注解@NotBlank,在分组校验情况下不生效,只会在@Validated下生效
5.自定义校验
1)编写一个自定义的校验注解
2)编写一个自定义的校验器ConstraintValidator
3)关联自定义的校验器和自定义的校验注解
@Documented
@Constraint(validatedBy = {ListValueConstraintValidator.class})可以指定多个不同的校验器适配不同类型的校验
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR,ElementType.PARAMETER, ElementType.TYPE_USE})
@Retention(RetentionPolicy.RUNTIME)
public @interface ListValue {
统一的异常处理
@ControllerAdvice
1)编写异常处理类,使用@ControllerAdvice
2)使用@ExceptionHandler
标注可以处理的异常的方法