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 任意类型 ...
随机推荐
- unity文件 PlayerPrefs.SetInt 保存 And PlayerPrefs.GetInt读取
unity文件保存读取PlayerPrefs.SetInt And PlayerPrefs.GetInt using UnityEngine; using System.Collections; ...
- MYSQL系列-Mysql存储引擎选择
MYSQL系列-Mysql存储引擎选择 //查看当前数据库支持的存储引擎 show engines \G; 创建表的时候可以通过engine=MyISAM指定存储引擎 MyISAM: .MYISAM不 ...
- java 命令学习总结
javac: (1)编译源文件成为字节码 (2)-d参数用于指定字节码文件所在包的位置,称为目标位置.如果源文件使用了package命令,则会自动在目标位置下创建完整的包目录,如源文件使用了 pack ...
- mongodb连接失败原因排查
安装了mongodb,添加了管理员root和test数据库的用户rex,并且开启的用户认证. 按照说明文档连接mongodb数据库:$mongo = new Mongo("mongodb:/ ...
- Hadoop 2.7.2 集群搭建(转载)
http://blog.csdn.net/u010048823/article/details/51913608
- 【Ubuntu】ubuntu 16.04 设置root用户初始密码
安装ubuntu成功后,都是普通用户权限,并没有最高root权限,如果需要使用root权限的时候,通常都会在命令前面加上 sudo . 我们一般使用su命令来直接切换到root用户的,但是如果没有给r ...
- Spring JdbcTemplate 使用总结
1.查询Object public Classify queryClassifById(int id){ String sql="select * from t_classify where ...
- 操作系统-Interrupts
- 科学计算基础包——Numpy
一.NumPy简介 NumPy是高性能科学计算和数据分析的基础包.它是pandas等其他各种工具的基础. 1.NumPy的主要功能 (1)ndarray:一个多维数组结构,高效且节省空间. (2)无需 ...
- 如何在web.config文件中配置Session变量的生命周期
实例说明:在网上购物商城中,为了维护在线购物环境,一般只有注册会员才可以购买商品.实现购物功能时,先通过Session变量记录会员的登录名,然后在购买商品页面通过判断会员是否登录确定其能否购买商品. ...