quarkus学习之Hibernate Validator进行验证(十一)

所有验证注解

@Null   被注释的元素必须为 null    
@NotNull    被注释的元素必须不为 null    
@AssertTrue     被注释的元素必须为 true    
@AssertFalse    被注释的元素必须为 false    
@Min(value)     被注释的元素必须是一个数字,其值必须大于等于指定的最小值    
@Max(value)     被注释的元素必须是一个数字,其值必须小于等于指定的最大值    
@DecimalMin(value)  被注释的元素必须是一个数字,其值必须大于等于指定的最小值    
@DecimalMax(value)  被注释的元素必须是一个数字,其值必须小于等于指定的最大值    
@Size(max=, min=)   被注释的元素的大小必须在指定的范围内    
@Digits (integer, fraction)     被注释的元素必须是一个数字,其值必须在可接受的范围内    
@Past   被注释的元素必须是一个过去的日期    
@Future     被注释的元素必须是一个将来的日期    
@Pattern(regex=,flag=)  被注释的元素必须符合指定的正则表达式

@NotBlank(message =)   验证字符串非null,且长度必须大于0    
@Email  被注释的元素必须是电子邮箱地址    
@Length(min=,max=)  被注释的字符串的大小必须在指定的范围内    
@NotEmpty   被注释的字符串的必须非空    
@Range(min=,max=,message=)  被注释的元素必须在合适的范围内

然后整合到quarkus中,首先引入依赖


    io.quarkus
    quarkus-hibernate-validator

定义接收的实体

public class User {
    @NotNull(message = "name not null")
    public String name;

    @Min(message = "age min 18 ",value = 18)
    @Max(message = "age max 40",value = 40)
    public Integer age;

}

注入Validator , validator.validate()方法进行验证和方法上添加@Valid 注解两种验证方法

@Inject
Validator validator;
@Path("/validata")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@Slf4j
public class ValidationContorller {

    @Inject
    Validator validator;

    @Path("/test")
    @POST
    public String test(User user){
        Set> validate = validator.validate(user);
        if (validate.isEmpty()) {
            for (ConstraintViolation userConstraintViolation : validate) {
                log.info(userConstraintViolation.getMessage());
            }
            return "error";
        }
        return "ok";
    }

    @Path("/test02")
    @POST
    public String test02(@Valid User user){
        return "ok";
    }
}

@Valid User user这样的写法,是直接返回状态码为400错误数据,看效果

quarkus学习之Hibernate Validator进行验证(十一)_第1张图片

你可能感兴趣的:(Quarkus,java)