第十三章:Spring校验

本文介绍Spring框架中的校验机制,包括Validator接口设计、Errors接口设计、自定义Validator的方法及BeanValidation与Validator的适配等内容。

1. Spring 校验使用场景

• Spring 常规校验(Validator)
• Spring 数据绑定(DataBinder)
• Spring Web 参数绑定(WebDataBinder)
• Spring Web MVC / Spring WebFlux 处理方法参数校验

2. Validator 接口设计

• 接口职责
• Spring 内部校验器接口,通过编程的方式校验目标对象
• 核心方法
• supports(Class):校验目标类能否校验
• validate(Object,Errors):校验目标对象,并将校验失败的内容输出至 Errors 对象
• 配套组件
• 错误收集器:org.springframework.validation.Errors

3. Errors 接口设计

• 接口职责
• 数据绑定和校验错误收集接口,与 Java Bean 和其属性有强关联性
• 核心方法
• reject 方法(重载):收集错误文案
• rejectValue 方法(重载):收集对象字段中的错误文案
• 配套组件
• Java Bean 错误描述:org.springframework.validation.ObjectError

4. Errors 文案来源

• Errors 文案生成步骤
• 选择 Errors 实现(如:org.springframework.validation.BeanPropertyBindingResult)
• 调用 reject 或 rejectValue 方法
• 获取 Errors 对象中 ObjectError 或 FieldError
• 将 ObjectError 或 FieldError 中的 code 和 args,关联 MessageSource 实现(如:
ResourceBundleMessageSource)

5. 自定义 Validator

• 实现 org.springframework.validation.Validator 接口
• 实现 supports 方法
• 实现 validate 方法
• 通过 Errors 对象收集错误
• ObjectError:对象(Bean)错误:
• FieldError:对象(Bean)属性(Property)错误

6. Validator 的救赎

• Bean Validation 与 Validator 适配
• 核心组件 - org.springframework.validation.beanvalidation.LocalValidatorFactoryBean
• 依赖 Bean Validation - JSR-303 or JSR-349 provider
• Bean 方法参数校验 - org.springframework.validation.beanvalidation.MethodValidationPostProcessor

7. 面试题精选

(1)Spring 校验接口是哪个?
答:org.springframework.validation.Validator
(2)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.beanvalidation.LocalValidatorFactoryBean

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值