主要关键类/接口介绍

Validator  校验器,定义的是一个具体的校验规则;

1.Rule 规则,是对一个具体规则的描述,包含校验具体的是哪个字段,用的什么校验器,校验错误的代码、错误描述信息等;
2.Configuration 配置,相当于是 Rule 的加载/定义器,一个类有哪些校验规则(Rule),通过 Configuration 来加载/配置,通过扩展 Configuration 可以实现从 DB,json 文件,Nacos 配置,自定义注解等等地方加载具体的规则配  置;
3.ConfigurationManager 配置管理器,Configuration 的总管,校验器接口不需要与具体的 Configuration 打交道,只需要从 ConfigurationManager 统一获取具体的校验规则即可。内部可实现一些缓存,定时刷新等逻辑;
4.Validate 客户端校验唯一入口类
 
Validator 介绍
Validator 具体的校验规则,只是规则的定义,不包含其他额外的信息,保持 Validator 的简单好处是,Validator 后续可以从任何地方来,可以基于注解、json文件、db等,而且 Validator 是可以重用的,也可以基于组合模式扩展出更多具体应用。
具体的一些实现扩展类
NotNullValidator
NotBlankValidator
PatternValidator
ExpressionValidator  // (**)这个应该是目前我们系统中主要使用的
1.SpelExpressionValidator // 基于 spring spel 表达式的校验(推荐使用这种,spring 标准的东西,可以支持类属性)
CompositeValidator  // 组合模式的应用,几个小的校验器组合起来就是一个大的校验器。适用一个属性有多个校验规则,或者几个属性校验规则组合起来成为一个类的校验器
AbstractCustomValidator// 自定义扩展
比如:CountryAreaPostcodeValidator

Rule 介绍
Rule 是一个具体的规则的描述,相当于是一个 Validator 和具体要校验字段/属性的一个绑定,并且提供校验错误的代码、提示信息等;
Rule 通过绑定 Validator 不同的实现,可以对字段、 类进行所有需要的校验;

Configuration 介绍
Configuration 是一个具体的配置,一个类有哪些校验规则(List<Rule>)就是通过 Configuration 来进行配置;
通过扩展 Configuration 的实现,可以实现一个类的校验规则从 DB,json 文件,nacos 配置中心,自定义注解等等地方进行加载;
具体的一些实现扩展类
DBConfiguration
JsonConfiguration
....
 
ConfigurationManager 介绍
Configuration 的总管,入口的校验器不需要跟具体的 Configuration 打交道,只需从 ConfigurationManager 获取具体的校验规则即可;
ConfigurationManager 还可以实现一些具体的例如:缓存,自动刷新等等额外的功能
 
 

 

posted on 2022-11-25 20:34  路飞_lufei  阅读(195)  评论(0编辑  收藏  举报