Hibernate Validator数据校验框架常用注释
使用前先配置maven,加入依赖:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.3.6.Final</version>
</dependency>
常用的注解:
|
注解 |
作用 |
|
@Valid |
被注释的元素是一个对象,需要检查此对象的所有字段值 |
|
@Null |
被注释的元素必须为 null |
|
@NotNull |
被注释的元素必须不为 null, 任何对象的value不能为null,适用于所有对象,用于8种基本数据类型是无效的 |
|
@AssertTrue |
被注释的元素必须为 true |
|
@AssertFalse |
被注释的元素必须为 false |
|
@Min(value) |
被注释的元素必须是一个数字,其值必须大于等于指定的最小值 |
|
@Max(value) |
被注释的元素必须是一个数字,其值必须小于等于指定的最大值 |
|
@DecimalMin(value) |
被注释的元素必须是一个数字,其值必须大于等于指定的最小值 |
|
@DecimalMax(value) |
被注释的元素必须是一个数字,其值必须小于等于指定的最大值 |
|
@Size(max, min) |
被注释的元素的大小必须在指定的范围内 |
|
@Digits (integer, fraction) |
被注释的元素必须是一个数字,其值必须在可接受的范围内 |
|
@Past |
被注释的元素必须是一个过去的日期 |
|
@Future |
被注释的元素必须是一个将来的日期 |
|
@Pattern(value) |
被注释的元素必须符合指定的正则表达式 |
|
|
被注释的元素必须是电子邮箱地址 |
|
@Length(min=, max=) |
被注释的字符串的大小必须在指定的范围内 |
|
@NotEmpty |
被注释的字符串的必须非空,集合对象的元素不为0,即集合不为空,也可以用于字符串不为null 适用于String, collection, map or array,不允许是null而且不允许为empty(即长度不能为0) |
|
@Range(min=, max=) |
被注释的元素必须在合适的范围内 |
|
@NotBlank |
被注释的字符串的必须非空,只能用于字符串不为null,并且字符串trim()以后length要大于0 |
示例:
String name = null;
@NotNull: false
@NotEmpty: false
@NotBlank: false
String name = "";
@NotNull: true
@NotEmpty: false
@NotBlank: false
String name = " ";
@NotNull: true
@NotEmpty: true
@NotBlank: false
String name = "Great answer!";
@NotNull: true
@NotEmpty: true
@NotBlank: true
JavaBean实例:
public class DemoBean {
@NotNull(message = "姓名不能为空!")
@Min(value = 1, message = "Id只能大于等于1,小于等于10")
@Max(value = 10, message = "Id只能大于等于1,小于等于10")
private Integer id;
@NotNull(message = "姓名不能为空!")
@Size(min = 2, max = 4, message = "姓名长度必须在{min}和{max}之间")
@Pattern(regexp = "[\u4e00-\u9fa5]+", message = "名称只能输入是中文字符")
private String userName;
@NotNull(message = "密码不能为空!")
@Size(min = 6, max = 12, message = "密码长度必须在{min}和{max}之间")
private String passWord;
@NotNull(message = "日期不能为空!")
@Past(message = "你只能输入过去的日期")
private Date birthday;
@NotNull(message = "邮件不能为空!")
@Email(message = "邮件格式不正确")
private String email;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
方法中的实例:
@NotNull(message = "返回值不能为空")
public User getUserInfoById(@NotNull(message = "不能为空") Integer id,String message){
return null;
}
Validator工具类:
import java.util.Set;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import org.hibernate.validator.HibernateValidator;
import com.atai.framework.lang.AppException; public class ValidationUtils { /**
* 使用hibernate的注解来进行验证
*
*/
private static Validator validator = Validation
.byProvider(HibernateValidator.class).configure().failFast(true).buildValidatorFactory().getValidator(); /**
* 功能描述: <br>
* 〈注解验证参数〉
*
* @param obj
* @see [相关类/方法](可选)
* @since [产品/模块版本](可选)
*/
public static <T> void validate(T obj) {
Set<ConstraintViolation<T>> constraintViolations = validator.validate(obj);
// 抛出检验异常
if (constraintViolations.size() > 0) {
throw new AppException("0001", String.format("参数校验失败:%s", constraintViolations.iterator().next().getMessage()));
}
}
}
Validator工具类代码调用实例:
ValidationUtils.validate(DemoBean);
Hibernate Validator数据校验框架常用注释的更多相关文章
- SpringBoot 2 快速整合 | Hibernate Validator 数据校验
概述 在开发RESTFull API 和普通的表单提交都需要对用户提交的数据进行校验,例如:用户姓名不能为空,年龄必须大于0 等等.这里我们主要说的是后台的校验,在 SpringBoot 中我们可以通 ...
- SpringMVC--使用hibernate validator数据校验
JSR 303 Spring3开始支持JSR 303 验证框架,JSR303是Java为Bean数据合法性校验所提供的标准框架.JSR 303 支持XML和注解风格的验证,通过在Bean属性上标注类似 ...
- SpringMVC中的 JSR 303 数据校验框架说明
JSR 303 是java为Bean数据合法性校验提供的标准框架,它已经包含在JavaEE 6.0中. JSR 303 通过在Bean属性上标注类似于@NotNull.@Max等标准的注解指定校验规则 ...
- 自己写的基于java Annotation(注解)的数据校验框架
JavaEE6中提供了基于java Annotation(注解)的Bean校验框架,Hibernate也有类似的基于Annotation的数据校验功能,我在工作中,产品也经常需要使 用数据校验,为了方 ...
- Hibernate Validator参数校验
日常开发中经常会遇到需要参数校验的情况,比如某个字段不能为空.长度不能超过5等都属于参数校验的范围.对于简单的参数校验通过写几个if-else判断语句就搞定,但是对于复杂的多个参数校验的情况,就不是那 ...
- maven validator数据校验
1.maven文件中添加依赖包 <!-- validator校验--> <dependency> <groupId>org.hibernate</groupI ...
- hibernate validator自定义校验注解以及基于服务(服务组)的校验
hibernate validator是Bean Validation 1.1 (JSR 349) Reference Implementation,其广泛的应用在mvc的参数校验中,尤其是使用服务端 ...
- hibernate validator参数校验&自定义校验注解
参数校验:简单的就逐个手动写代码校验,推荐用Valid,使用hibernate-validator提供的,如果参数不能通过校验,报400错误,请求格式不正确: 步骤1:在参数对象的属性上添加校验注解如 ...
- validator 参数校验的常用注解
@AssertFalse Boolean,boolean 验证注解的元素值是false @AssertTrue Boolean,boolean 验证注解的元素值是true @NotNull 任意类型 ...
随机推荐
- C++的一些编程规范
新规范的目标: 让代码排错更加简单 程序员专心于业务逻辑 将一些错误交给编译器处理 提高代码可维护性 逐步实现插件化 编码 使用array(QT下用QVarLengthArray)代替和vector代 ...
- Python 字符串 (str)
作者博文地址:https://www.cnblogs.com/liu-shuai/ Python字符串的常用操作包括以下但不限于以下操作: 1 字符串的替换.删除.切片.复制.连接.比较.查找.分割等 ...
- Developing crm service based on apache cxf
1 数据库环境搭建 创建数据库boscrm 执行脚本: 脚本内容: /* Navicat MySQL Data Transfer Source Server : root Source Server ...
- B站视频下载(VideoHelper)
继续上次的知乎爬虫, 这次开始了哔哩哔哩的爬虫实践: 首先介绍下如何下载吧: VideoHelper 里面有三种方式下载b站视频. 同样的流程, 还是先抓包,分析参数,寻找参数(包括之前的请求包和页面 ...
- ArcGIS发布地图服务后直接调用查看方法
做项目配置了一个地理底图,不知道有没有问题,如何给到客户查看并确认呢? 首先在ArcGIS上发布该地图: 打开地图后->文件->共享为->服务…… 发布成功后,得到可以访问的地图服务 ...
- Pygame 加载音频
Python Learning:Pygame 加载音频 Python 中自带的 winsound 模块 winsound 模块中 Beep 方法可以调用系统的蜂鸣器,接受一个为 frequency 的 ...
- Mysql自动更新字段时间
Mysql中更新某天数据可设置该条数据中的某个字段自动更新 ALTER TABLE `表名` MODIFY `字段名` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON U ...
- 关闭Windows 系统当前连接的Wifi以及判断物理\虚拟网卡,有线\无线网卡
1.关闭wifi ,调用Api [DllImport("Wlanapi.dll", SetLastError = true)] public static extern uint ...
- rem,em,px
http://pxtoem.com/ px,em,rem单位转换工具 px(Pixel)根据显示屏分辨率,固定大小 em,根据父元素大小进行改变 rem,根据html进行相对改变 em 1. bod ...
- 如何使用CSS隐藏滚动条并且兼容大部分浏览器
隐藏滚动条,已经自己实测在浏览器Chrome, IE (6+), Firefox, Opera, Safari. 如下demo: Content 1 Content 1 Content 1 Conte ...