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-349
Bean 方法参数校验
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