自定义校验注解
⒈编写校验逻辑类
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
版权:本作品采用「本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。」许可协议进行许可。
如果文章内容对您有所帮助,欢迎赞赏.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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框架的用法!