Java中spring boot validation自定义注解使用方式

 更新时间:2024年08月05日 16:55:16   作者:妍老大  
这篇文章主要介绍了Java中spring boot validation自定义注解使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

spring boot validation自定义注解

创建一个注解

@Target({ElementType.FIELD})//需要写注解的三三个要素
@Retention(RUNTIME)
@Documented
@Constraint(validatedBy = {IsSystemYesNoVaildation.class})//绑定 在这里会报错 你需要去实现
public @interface IsSystemYesNo {

    String message() default "数据字典:【系统是否】-参数不合法";
//要添加下面这两个 
 Class<?>[] groups() default { };
 Class<? extends Payload>[] payload() default {};
}

public class IsSystemYesNoVaildation implements 
                   //入参         类型
ConstraintValidator<IsSystemYesNo,String> {//实现 
    @Override
    public boolean isValid(String value, ConstraintValidatorContext context) {
//把video传进来  自定义注解就写好了
        return SystemYesNo.isCode(value);
    }
}

最后这里是使用注解方法

spring boot Validation校验注解参考表

校验注解表
校验注解注解的元素类型描述
@AssertFalseBoolean、boolean被注解的元素值必须为 false
@AssertTrueBoolean、boolean被注解的元素值必须为 true
@DecimalMaxBigDecimal、BigInteger、CharSequence、byte、short、int、long以及它们各自的包装类被注解的元素值小于等于@DecimalMax注解中的value 值
@DecimalMin

被注解的元素值大于等于@DecimalMin注解

中的value 值

@MaxBigDecimal、BigInteger、byte、short、int、long以及它们各自的包装类被注解的元素值小于等于@Max注解中的value 值
@Min

被注解的元素值大于等于@Min注解

中的value 值

@DigitsBigDecimal、BigInteger、CharSequence、byte、short、int、long以及它们各自的包装类被注解的元素必须是一个数字,其值必须在可接受的范围内(整数位数和小数位数在指定范围内
@EmailCharSequence被注解的元素必须是Email格式
@FutureJava.util.Date、java.util.Calendar以及java.time包下的时间类被注解的元素值必须是一个未来的日期
@Past被注解的元素值必须是一个过去的日期
@PastOrPresent被注解的元素值必须是一个过去的日期或者当前日期
@FutureOrPresent被注解的元素值必须是一个未来的日期或者当前日期
@NegativeBigDecimal、BigInteger、byte、short、int、long以及它们各自的包装类被注解的元素必须是负数
@NegativeOrZero被注解的元素必须是负数或0
@Positive被注解的元素必须是正数
@PositiveOrZero被注解的元素必须是或0
@NotBlankCharSequence被注解的元素必须部位null并且至少有一个非空白的字符
@NotEmptyCharSequence、Collection、Map、Array被注解的字符串不为null或空字符串,被注解的集合或数组不为空。和@NotBlank注解相比,一个空格字符串在@NotBlank验证不通过,但在NotEmpty中通过验证
@NotNull任意类型被注解的元素不为null
@Null被注解的元素为null
@PatternCharSequence被注解的 元素必须符合指定的正则表达式
@SizeCharSequence、Collection、Map、Array被注解的字符串长度、集合或数组的大小必须在指定范围内

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java单链表逆序用法代码示例

    java单链表逆序用法代码示例

    这篇文章主要介绍了java单链表逆序用法代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • ThreadLocal内存泄漏常见要点解析

    ThreadLocal内存泄漏常见要点解析

    这篇文章主要介绍了ThreadLocal内存泄漏常见要点,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • SpringBoot参数校验@Validated、@Valid方式详解

    SpringBoot参数校验@Validated、@Valid方式详解

    Spring Boot中使用@Validated和@Valid进行参数校验,确保数据的完整性和安全性,@Validated适用于分组校验,而@Valid则更为通用,通过自定义注解和枚举校验注解处理类,可以实现更复杂的验证逻辑
    2025-11-11
  • Java调用用户芝麻信用分

    Java调用用户芝麻信用分

    这篇文章主要为大家详细介绍了Java调用用户芝麻信用分,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • Java 替换字符串中的回车换行符的方法

    Java 替换字符串中的回车换行符的方法

    Java 替换字符串中的回车换行符的方法,需要的朋友可以参考一下
    2013-03-03
  • Mybatis中SQL的执行过程详解

    Mybatis中SQL的执行过程详解

    MyBatis框架通过映射文件或注解将Java代码中的方法与数据库操作进行映射,执行过程包括SQL解析、参数绑定、SQL预编译、执行、结果映射、事务处理、缓存处理和日志记录
    2024-12-12
  • Java使用JSON实现处理中文乱码和Date格式

    Java使用JSON实现处理中文乱码和Date格式

    这篇文章主要为大家详细介绍了Java如何在项目中使用JSON实现处理中文乱码和Date格式的功能,文中的示例代码讲解详细,需要的小伙伴可以参考一下
    2023-06-06
  • 深入浅析Netty 在 Dubbo 中是如何应用的

    深入浅析Netty 在 Dubbo 中是如何应用的

    国内知名框架 Dubbo 底层使用的是 Netty 作为网络通信,那么内部到底是如何使用的呢?今天通过本文给大家详细讲解,对Netty 在 Dubbo中应用相关知识感兴趣的朋友跟随小编一起看看吧
    2020-05-05
  • 解决myBatis返回integer值的问题

    解决myBatis返回integer值的问题

    这篇文章主要介绍了解决myBatis返回integer值的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 用java实现杨辉三角的示例代码

    用java实现杨辉三角的示例代码

    本篇文章主要介绍了用java实现杨辉三角的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01

最新评论