Hibernate-Validator具体的逻辑代码处理
【摘要】 在平常开发中,我们应该会接触到hibernate-Validator校验框架,但是对于其具体的作用和对一些特殊情况的判断可能不是很了解,这个时候就需要看源码,但是源码需要单独找一下。一般来说,我们自定义校验注解的时候,有一个注解@Constraint,其作用是说明逻辑处理类,但是框架自带的类并未填值@Constraint( validatedBy = {} // 理论这里是说明校验器,...
在平常开发中,我们应该会接触到hibernate-Validator校验框架,但是对于其具体的作用和对一些特殊情况的判断可能不是很了解,这个时候就需要看源码,但是源码需要单独找一下。
一般来说,我们自定义校验注解的时候,有一个注解@Constraint,其作用是说明逻辑处理类,但是框架自带的类并未填值
@Constraint(
validatedBy = {} // 理论这里是说明校验器,即java的逻辑处理类
)
@Documented
@Constraint(
validatedBy = {} // @Length的代码逻辑处理类为空
)
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.TYPE_USE})
@Retention(RetentionPolicy.RUNTIME)
@Repeatable(Length.List.class)
public @interface Length {
// 源框架的@Length的注解内容
}
具体的逻辑处理类在该包该依赖下:
依赖:hibernate-validator-6.1.6.Final.jar(具体版本可能不同)
包名:org.hibernate.validator.internal.constraintvalidators
这个包下有很多validator结尾的类名,这些就是具体的校验注解的校验器。
至于他们的对照关系,例如@Max 对应哪个, 这个尽量根据名字来进行匹配即可。
// todo 按照代码原理来说,注解和校验器之间肯定应该有一个对照关系,但是我暂未找到,后续找到了再进行补充。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)