Java Validation Api

在我们应用程序的业务逻辑中,经常会碰到参数教研的情况,比如在Controller中,我们的参数是一个Entity的时候,经常要判断这个Entity的字段是否是null之类或者是长度等。通常来讲,我们用比如StringUtils或者是if等来进行教研,这样在我们的代码层上面就会带来很不好的体验,阅读、维护的成本会大大增加,造成冗余。因此有了这个JSR 303。

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

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

这是核心注解 @Valid,可以看出是在RUNTIME。

接下来我们看下相关的注解

这是javax.validation包中的 主要包括上述的几个注解

注解

描述

@AssertFalse

被注释的元素必须为 false

@AssertTrue

同@AssertFalse

@DecimalMax

被注释的元素必须是一个数字,其值必须小于等于指定的最大值

@DecimalMin

同DecimalMax

@Digits

被注释的元素是数字

@Future

将来的日期

@Max

被注释的元素必须是一个数字,其值必须小于等于指定的最大值

@Min

被注释的元素必须是一个数字,其值必须大于等于指定的最小值

@NotNull

不能是Null

@Null

元素是Null

@Past

被注释的元素必须是一个过去的日期

@Pattern

被注释的元素必须符合指定的正则表达式

@Szie

被注释的元素

上面标红的是楼主经常遇到的

接下来是org.hibernate.validator.constraints包中的

注解

描述

@Email

元素必须是格式良好的电子邮箱地址

@Length

字符串的大小必须在指定的范围内,有min和max参数

@NotEmpty

字符串的不能是空

@NotBlank

字符串不能使空,但是与@NotEmpty不同的是尾随的空白被忽略

@URL

字符串必须是一个URL


 这是一个DTO,我们在里边做了一些验证

或者我们可以使用自定义的注解来操作

注意,在我们调用加了验证注解的DTO中,我们需要在DTO的前边加入@Valid

例如

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏WD学习记录

Python数据结构与算法笔记(1)

ADT(abstract data type)是由用户定义的数据类型,它制定了一组数据值的集合及可作用在这些数据值上的一组操作。ADT的定义与它的具体实现无关,...

2903
来自专栏HansBug's Lab

1012: [JSOI2008]最大数maxnumber

1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec  Memory Limit: 162 MB Submit: 443...

2845
来自专栏程序猿DD

JDK 1.5 - 1.8 各版本的新特性总结

此文章意在借鉴前人经验,留作日后查看。如有侵犯,实属无意。我以后会注意,谢谢博友的提醒。也愿各大博友们能够共同学习和努力。

7206
来自专栏ImportSource

Java8真不用再搞循环了?

Java8以后真的不用循环了?真的不用了? 好吧,本文分享的内容是java8之前和java8之后一些代码的不同写法,我们会先介绍java8之前和java8之后不...

2.5K11
来自专栏WindCoder

JSON中关于对双向关联的支持

本文原文:Bidirectional Relationship Support in JSON

1842
来自专栏pangguoming

Java编程最差实践(常见编程错误典范)

转载自  http://macrochen.iteye.com/blog/1393502

872
来自专栏pangguoming

Proguard使用最新,最全教程,亲自试验

最近公司有一个项目,是外包项目,由于对方也有技术人员,出于技术上的保密,需要对class文件进行二次处理,于是网上找了好久,只发现Proguard是用的最广泛而...

7213
来自专栏积累沉淀

【译】Java 8的新特性—终极版

声明:本文翻译自Java 8 Features Tutorial – The ULTIMATE Guide,翻译过程中发现并发编程网已经有同学翻译过了:...

24810
来自专栏阿杜的世界

【译】Java 8的新特性—终极版1. 简介2. Java语言的新特性3. Java编译器的新特性4. Java官方库的新特性5. 新的Java工具6. JVM的新特性7. 结论8. 参考资料

前言: Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级。在Java Code Geeks上已经有很多介绍Java 8新特性的文章,...

1164
来自专栏小樱的经验随笔

【Java学习笔记之二十八】深入了解Java8新特性

前言: Java 8 已经发布很久了,很多报道表明java 8 是一次重大的版本升级。在Java Code Geeks上已经有很多介绍Java 8新特性的文章,...

3687

扫码关注云+社区

领取腾讯云代金券