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-12-12
  • Servlet中/和/*的区别详解

    Servlet中/和/*的区别详解

    本文将分析/和/*的区别这个老生常谈的问题,但是很多时候看完就忘了,关于此问题这一篇文章就够了,它将成为你的永久记忆,感兴趣的可以了解一下
    2021-07-07
  • java rocketmq--消息的产生(普通消息)

    java rocketmq--消息的产生(普通消息)

    这篇文章主要介绍了java rocketmq--消息的产生(普通消息),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下
    2019-06-06
  • Java 实战范例之校园二手市场系统的实现

    Java 实战范例之校园二手市场系统的实现

    读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用java+SSM+mysql+maven+tomcat实现一个校园二手市场系统,大家可以在过程中查缺补漏,提升水平
    2021-11-11
  • SpringBoot+Redis实现数据字典的方法

    SpringBoot+Redis实现数据字典的方法

    这篇文章主要介绍了SpringBoot+Redis实现数据字典的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • Java成员变量的隐藏(实例讲解)

    Java成员变量的隐藏(实例讲解)

    下面小编就为大家带来一篇Java成员变量的隐藏(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • 基于restTemplate遇到的编码问题及解决

    基于restTemplate遇到的编码问题及解决

    这篇文章主要介绍了restTemplate遇到的编码问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • Java SE使用数组实现高速数字转换功能

    Java SE使用数组实现高速数字转换功能

    随着大数据时代的到来,数字转换功能变得越来越重要,在Java开发中,数字转换功能也是经常用到的,下面我们就来学习一下如何使用Java SE数组实现高速的数字转换功能吧
    2023-11-11
  • Java版超大整数阶乘算法代码详解-10,0000级

    Java版超大整数阶乘算法代码详解-10,0000级

    这篇文章主要介绍了Java版超大整数阶乘算法代码详解-10,0000级,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • 一天时间用Java写了个飞机大战游戏,朋友直呼高手

    一天时间用Java写了个飞机大战游戏,朋友直呼高手

    前两天我发现论坛有两篇飞机大战的文章异常火爆,但都是python写的,竟然不是我大Java,说实话作为老java选手,我心里是有那么一些失落的,今天特地整理了这篇文章,需要的朋友可以参考下
    2021-05-05

最新评论