Spring Framewok: Spring 校验
Spring 校验
Spring 校验的使用场景
Spring 常规校验 (Validator)
Spring 数据绑定 (DataBinder)
Spring Web 参数绑定 (WebDataBinder)
Spring MVC/Spring WebFlux 处理方法参数校验
org.springframework.validation.Validator
接口职责
spring 内部校验接口,通过编程的方式校验目标对象
核心方法

配套组件
Validator 工具类
org.springframework.validation.ValidationUtils

错误收集器
org.springframework.validation.Errors
org.springframework.validation.Errors
接口设计
接口职责
数据绑定和数据校验错误信息收集接口,与
JavaBean和其属性有强关联关系核心方法
Java Bean 的错误信息描述

Java Bean 属性错误信息描述

配套组件
org.springframework.validation.ObjectError
org.springframework.validation.FieldError
文案来源
选择 Errors 实现
org.springframework.validation.BeanPropertyBindResult
调用
reject或者rejectObject方法获取 Errors 对象中的
ObejctError或者FieldError将
ObjectError或者FieldError中的code和args,关联MessageResource(org.springframework.context.support.ResourceBundleMessageSource)


自定义实现org.springframework.validation.Validator
实现
supports实现
validate通过 Errors对象进行错误收集
ObjectError
FieldError
通过
ObejectError和FieldError关联MessageSource实现最终文案
code



Spring Validator 的自我救赎
org.springframework.validation.beanvalidation.LocalValidatorFactoryBean
依赖 Bean Validation
JSR-303或者JSR-349Bean 方法参数校验
org.springframework.validation.beanvalidation.MethodValidationPostProcessor
org.springframework.validation.beanvalidation.LocalValidatorFactoryBean

org.springframework.validation.beanvalidation.MethodValidationPostProcessor
面试题: Spring 校验接口是那个
org.springframework.validation.Validator
面试题: Spring 有些核心校验组件
org.springframework.validation.Validator
错误收集: org.springframework.validation.Errors
Java Bean 错误描述 : org.springframework.validation.ObjectError
Java Bean 属性错误描述 : org.springframework.validation.FieldError
Bean Validation 的适配
org.springframework.validation.LocalValidatorFactoryBean