Hibernate Validator (JSR303)校验

想搭建基于JSR303的项目环境,你需要如下4个构件:

hibernate-validator-4.2.0.Final.jar

slf4j-api-1.6.1.jar

validation-api-1.0.0.GA.jar

一个简单的POJO,其中采用如下效验规则:

package com.test.request.bean;

import java.util.Date;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Past;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import org.hibernate.validator.constraints.Email;

public class InfoBean
{
    @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;

此处省略set和get方法
}

既然POJO也定义好了,我们还需要使用到ValidatorFactory来获取效验工厂实例,并帮助我们完成基础的效验步骤工作:

package com.test.request.bean;

import java.util.Date;
import java.util.Set;

import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;

import org.junit.Test;

public class InfoBeanTest
{
    @Test
    public void test() throws Exception
    {
        /* 创建效验工厂 */
        ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();
        Validator validator = validatorFactory.getValidator(); 

        /* 信息封装 */
        InfoBean infoBean = new InfoBean();
        infoBean.setId(-1);
        infoBean.setUserName("张三");
        infoBean.setPassWord("123456");
        infoBean.setEmail("[email protected]");
        infoBean.setBirthday(new Date());

        /* 将类型装载效验 */
        Set<ConstraintViolation<InfoBean>> set = validator.validate(infoBean);
        for (ConstraintViolation<InfoBean> constraintViolation : set)
            System.out.println("错误:" + constraintViolation.getMessage());
    }
}
时间: 2024-11-16 16:27:35

Hibernate Validator (JSR303)校验的相关文章

springboot使用hibernate validator校验

一.参数校验 在开发中经常需要写一些字段校验的代码,比如字段非空,字段长度限制,邮箱格式验证等等,写这些与业务逻辑关系不大的代码个人感觉有两个麻烦: 验证代码繁琐,重复劳动 方法内代码显得冗长 每次要看哪些参数验证是否完整,需要去翻阅验证逻辑代码 hibernate validator(官方文档)提供了一套比较完善.便捷的验证实现方式. spring-boot-starter-web包里面有hibernate-validator包,不需要引用hibernate validator依赖. 二.hi

用spring的@Validated注解和org.hibernate.validator.constraints.*的一些注解在后台完成数据校验

这个demo主要是让spring的@Validated注解和hibernate支持JSR数据校验的一些注解结合起来,完成数据校验.这个demo用的是springboot. 首先domain对象Foo的代码如下: package com.entity; import org.hibernate.validator.constraints.Email; import org.hibernate.validator.constraints.NotBlank; import javax.validati

springboot使用hibernate validator校验方式

一.参数校验 在开发中经常需要写一些字段校验的代码,比如字段非空,字段长度限制,邮箱格式验证等等,写这些与业务逻辑关系不大的代码个人感觉有两个麻烦: 验证代码繁琐,重复劳动 方法内代码显得冗长 每次要看哪些参数验证是否完整,需要去翻阅验证逻辑代码 hibernate validator(官方文档)提供了一套比较完善.便捷的验证实现方式. spring-boot-starter-web包里面有hibernate-validator包,不需要引用hibernate validator依赖. 二.hi

spring boot中使用javax.validation以及org.hibernate.validator校验入参

这里springboot用的版本是:<version>2.1.1.RELEASE</version> 自带了hibernate.validator,所以不用添加额外依赖 1.创建个对应前台form的测试vo,并添加字段校验注解 import java.math.BigDecimal; import java.util.Date; import java.util.List; import javax.validation.constraints.AssertTrue; import

JSR303校验

由于Validation框架通过硬编码完成数据校验,在实际开发中会显得比较麻烦,因此现代开发更加推荐使用JSR303完成数据校验. JSR303是java为bean数据合法性校验锁提供的一个标准规范,叫做Bean Validation.它是一个运行时的数据验证框架,在验证之后验证的错误信息会被马上返回. JSR303是一个规范,它的核心接口是javax.validation.Validator,该接口根据目标对象类中所标注的校验注解进行数据校验,并得到校验结果. 目前有两个实现,第一个是Hibe

Spring Validation(使用Hibernate Validator)

1.需要的jar包 hibernate-validator.5.1.3.Final.jar validation-api.1.1.0.Final.jar 2.springsevlet-config.xml配置 在spring3之后,任何支持JSR303的validator(如Hibernate Validator)都可以通过简单配置引入,只需要在配置xml中加入,这时validatemessage的属性文件默认为classpath下的ValidationMessages.properties:

springMvc 支持hibernate validator

SpringMVC 支持Hibernate Validator 发表于9个月前(2014-08-04 11:34)   阅读(1780) | 评论(0) 11人收藏此文章, 我要收藏 赞0 5月23日 西安 OSC 源创会开始报名啦,存储.虚拟机.Docker 等干货分享 摘要 这段时间看公司的代码都是代码中对数据进行显性的验证,在业务逻辑中混杂了太多的数据校验的代码,感觉各种不舒服,正好趁今天有些空闲,就将SpringMVC整合了下Hibernate Validator.现在记录下整合过程,过

Hibernate Validator验证注解说明

Hibernate Validator是JSR-303的一个实现.在FormBean里添加Hibernate Validator的注解,与定义一个校验类的做法相比.注解更加简洁.灵活. 注解说明 Bean Validation 中内置的 constraint         @Null   被注释的元素必须为 null    @NotNull    被注释的元素必须不为 null    @AssertTrue     被注释的元素必须为 true    @AssertFalse    被注释的元

bean validator - Hibernate validator

在后台开发过程中,对参数的校验成为开发环境不可缺少的一个环节.比如参数不能为null,email那么必须符合email的格式,如果手动进行if判断或者写正则表达式判断无意开发效率太慢,在时间.成本.质量的博弈中必然会落后.所以把校验层抽象出来是必然的结果,下面说下几种解决方案. validation bean 是基于JSR-303标准开发出来的,使用注解方式实现,及其方便,但是这只是一个接口,没有具体实现.Hibernate Validator是一个hibernate独立的包,可以直接引用,他实