java hibernate 校验_Hibernate Validator校验

1. 参数校验

spring-boot-starter-web包里面有hibernate-validator包,不需要引用hibernate validator依赖。

2. hibernate validator校验demo

1. 导入包

import org.hibernate.validator.constraints.NotBlank;

import javax.validation.constraints.AssertFalse;

import javax.validation.constraints.Pattern;

2. demo

@Getter

@Setter

@NoArgsConstructor

public class DemoModel {

@NotBlank(message="用户名不能为空")

private String userName;

@NotBlank(message="年龄不能为空")

@Pattern(regexp="^[0-9]{1,2}$",message="年龄不正确")

private String age;

@AssertFalse(message = "必须为false")

private Boolean isFalse;

/**

* 如果是空,则不校验,如果不为空,则校验

*/

@Pattern(regexp="^[0-9]{4}-[0-9]{2}-[0-9]{2}$",message="出生日期格式不正确")

private String birthday;

}

3. 结果返回

@RequestMapping("/demo2")

public void demo2(@RequestBody @Valid DemoModel demo, BindingResult result){

if(result.hasErrors()){

for (ObjectError error : result.getAllErrors()) {

System.out.println(error.getDefaultMessage());

}

}

}

4. 传入参数

{"userName":"dd","age":120,"isFalse":true,"birthday":"21010-21-12"}

5. 输出结果

出生日期格式不正确

必须为false

年龄不正确

3. hibernate的校验模式

1. 普通模式(默认为该模式)

会校验所有属性,然后返回所有的验证失败信息。

2. 快速失败返回模式

只要有一个校验失败则返回。

3. 设置方式

// failFast: true 快速失败返回模式,false 普通模式

ValidatorFactory validatorFactory = Validation.byProvider( HibernateValidator.class )

.configure()

.failFast( true )

.buildValidatorFactory();

Validator validator = validatorFactory.getValidator();

// hibernate.validator.fail_fast: true 快速失败返回模式,false 普通模式

ValidatorFactory validatorFactory = Validation.byProvider( HibernateValidator.class )

.configure()

.addProperty( "hibernate.validator.fail_fast", "true" )

.buildValidatorFactory();

Validator validator = validatorFactory.getValidator();

4. hibernate的校验

配置hibernate Validator为快速返回模式: @Configuration

public class ValidatorConfiguration {

@Bean

public Validator validator(){

ValidatorFactory validatorFactory = Validation.byProvider( HibernateValidator.class )

.configure()

.addProperty( "hibernate.validator.fail_fast", "true" )

.buildValidatorFactory();

Validator validator = validatorFactory.getValidator();

return validator;

}

}

1. 请求参数校验

验证请求参数时,在 @RequestBody DemoModel demo 之间加注解 @Valid,然后在后面加 BindindResult 即可;多个参数࿰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值