自定义校验注解

⒈编写校验逻辑类

复制代码
 1 package cn.coreqi.security.validator;
 2 
 3 import javax.validation.ConstraintValidator;
 4 import javax.validation.ConstraintValidatorContext;
 5 
 6 /**
 7  * 第一个泛型是我们自定义验证注解的名称
 8  * 第二个泛型是验证字段的类型
 9  */
10 public class MyConstraintValidator implements ConstraintValidator<MyConstraint,String> {
11     /**
12      * 初始化做的一些工作
13      * @param constraintAnnotation
14      */
15     @Override
16     public void initialize(MyConstraint constraintAnnotation) {
17         System.out.println("My calidator init");
18     }
19 
20     /**
21      *  校验逻辑
22      * @param s 传进来需要校验的值
23      * @param constraintValidatorContext    校验上下文
24      * @return
25      */
26     @Override
27     public boolean isValid(String s, ConstraintValidatorContext constraintValidatorContext) {
28         System.out.println(s);
29         return true;
30     }
31 }
复制代码

⒉自定义校验注解并使用校验逻辑类

复制代码
 1 package cn.coreqi.security.validator;
 2 
 3 import javax.validation.Constraint;
 4 import javax.validation.Payload;
 5 import java.lang.annotation.ElementType;
 6 import java.lang.annotation.Retention;
 7 import java.lang.annotation.RetentionPolicy;
 8 import java.lang.annotation.Target;
 9 
10 /**
11  * 自定义一个验证注解
12  * @author fanqi
13  */
14 @Target({ElementType.METHOD,ElementType.FIELD})   //@Target用于指定注解可以标注在那些元素上
15 @Retention(RetentionPolicy.RUNTIME) //指定当前注解是运行时注解
16 @Constraint(validatedBy = MyConstraintValidator.class) //指定当前注解是一个校验注解,并指定校验逻辑类
17 public @interface MyConstraint {
18 
19     /**
20      * 当校验未通过所传递的信息
21      * @return
22      */
23     String message();
24 
25     Class<?>[] groups() default {};
26 
27     Class<? extends Payload>[] payload() default {};
28 }
复制代码

⒊使用(略)

作者:奇

出处:https://www.cnblogs.com/fanqisoft/p/10604467.html

版权:本作品采用「本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。」许可协议进行许可。

posted @   SpringCore  阅读(1290)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
more_horiz
keyboard_arrow_up light_mode palette
选择主题
点击右上角即可分享
微信分享提示