Java Validation Api使用方法实例解析

作者:果果虫 时间:2023-05-16 05:44:58 

在我们应用程序的业务逻辑中,经常会碰到参数校验的情况,手动的在代码层上面进行校验就会带来很不好的体验,阅读、维护的成本会大大增加,造成冗余。因此有了这个JSR 303。

Bean Validation为JavaBean提供了相应的API来给我们做参数的验证。通过Bean Validation比如@NotNull @Pattern等方法来对我们字段的值做进一步的教研。

Bean Validation是一个运行时框架,在验证之后错误信息会直接返回。

依赖:


<!--添加依赖-->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>

注意: SpringBoot2 项目web组件已经内置了这个依赖了。

版本提供依赖:

Java Validation Api使用方法实例解析

依赖注释:


注解用途
AssertFalse用于boolean字段,该字段的值只能为false
AssertTrue用于boolean字段,该字段只能为true
DecimalMax(value)被注释的元素必须是一个数字,只能大于或等于该值
DecimalMin(value)被注释的元素必须是一个数字,只能小于或等于该值
Digits(integer,fraction)检查是否是一种数字的(整数,小数)的位数
Email被注释的元素必须是电子邮箱地址
Future检查该字段的日期是否是属于将来的日期
FutureOrPresent判断日期是否是将来或现在日期
Max(value)该字段的值只能小于或等于该值
Min(value)该字段的值只能大于或等于该值
Negative判断负数
NegativeOrZero判断负数或0
NotBlank只能用于字符串不为null,并且字符串trim()以后length要大于0
NotEmpty集合对象的元素不为0,即集合不为空,也可以用于字符串不为null
NotNull不能为null
Null必须为 null
Past检查该字段的日期是在过去
PastOrPresent判断日期是否是过去或现在日期
Pattern(value)被注释的元素必须符合指定的正则表达式
Positive判断正数
PositiveOrZero判断正数或0
Size(max, min)检查该字段的size是否在min和max之间,可以是字符串、数组、集合、Map等
Length(max, min)判断字符串长度
CreditCardNumber被注释的字符串必须通过Luhn校验算法,银行卡,信用卡等号码一般都用Luhn计算合法性

来源:https://www.cnblogs.com/guoguochong/p/12886303.html

标签:Java,Validation,Api
0
投稿

猜你喜欢

  • C#实现解压GZip文件的方法

    2022-11-29 07:25:36
  • MyBatis框架之mybatis逆向工程自动生成代码

    2023-01-11 06:19:18
  • 微信公众号 网页授权登录及code been used解决详解

    2023-02-06 18:49:00
  • c#发送请求访问外部接口的实例

    2023-05-25 17:43:30
  • .net实现序列化与反序列化实例解析

    2022-08-05 06:42:08
  • Android Activity 不能被截屏的解决方法

    2021-06-28 08:37:35
  • 常用的Java数据结构知识点汇总

    2022-09-09 02:26:02
  • Android自定义WaveProgressView实现水波纹加载需求

    2021-07-29 02:06:00
  • Android通过代码控制ListView上下滚动的方法

    2022-06-29 03:07:57
  • android实现下拉菜单三级联动

    2022-10-13 15:46:53
  • OpenCV中C++函数imread读取图片的问题及解决方法

    2023-12-02 11:25:50
  • SpringBoot下载Excel文件时,报错文件损坏的解决方案

    2023-01-09 15:49:16
  • Android基准配置文件Baseline Profile方案提升启动速度

    2022-08-12 18:54:42
  • Spring Security登录表单配置示例详解

    2023-10-12 09:03:55
  • Java 线程的优先级(setPriority)案例详解

    2023-11-12 23:46:39
  • Win10下C# DateTime出现星期几问题的解决方法

    2023-01-12 16:42:04
  • C#图片压缩的实现方法

    2022-07-01 21:26:12
  • Android实现掷骰子效果

    2022-06-16 01:09:16
  • Android定时器实现定时执行、重复执行、定时重复执行、定次数执行的多种方式

    2022-06-30 02:07:26
  • SpringCloud中分析讲解Feign组件添加请求头有哪些坑梳理

    2023-05-01 19:30:11
  • asp之家 软件编程 m.aspxhome.com