参数校验Java Bean Validation 规范

参数校验Java Bean Validation 规范_第1张图片

使用参数校验Java Bean Validation 规范可以直接引入上面这个starter依赖

这个依赖里面有hibernate-validator依赖,而hibernate-validator依赖里面有jakarta.validation-api依赖

其中

hibernate-validator:实现验证器

jakarta.validation-api:提供验证器的API

像@size ,@NotNull ,@Pattern等等都是jakarta.validation-api提供的

参数校验Java Bean Validation 规范_第2张图片

下面说说一般常用的校验性注解:

@size:限制各种数据结构的长度

@NotNull:一般用于基本数据类型和包装类,要求值不能为null,但可以为空(如长度为0的字符串)。

@NotBlank:主要用于字符串类型,要求值不能为null且不能只包含空白字符。

@NotEmpty:注解用于集合类、字符串、数组等类型,要求值不能为null且大小必须大于0。

@Email:验证一个字段是否符合电子邮件地址的格式

@Pattern:验证字段值是否符合正则表达式的模式

@CreditCardNumber:校验信用卡格式

@BIC:校验有效的银行识别码(BIC码),例如,中国银行的BIC代码是"BKCHCNBJS"

@Locale:校验地区代码,例如,中国大陆:CN,香港:HK等

@Charset:校验符合规定字符集编码

这些注解通常用在方法参数上,以便在方法执行前对参数进行验证。如果验证失败,将会抛出ConstraintViolationException异常。此外,这些注解也可以用在字段上,以便在Bean创建时对字段进行验证。

@Size(min = 0, max = 30,message = "用户账号长度不能超过30个字符")
public String getUsername() {
    return username;
}

@NotNull(message = "密码不能为空")
public String getPassword() {
    return password;
}

@Size(min = 0, max = 11, message = "联系电话长度不能超过11个字符")
@Pattern(regexp = ValidationConstants.PHONE_PATTERN, message = "手机号码不符合规范")
public String getPhone() {
    return phone;
}

@Email(message = "邮箱格式不正确")
@Size(min = 0, max = 50, message = "邮箱长度不能超过50个字符")
public String getEmail() {
    return email;
}

@Size(max = 18, message = "身份证号不能大于18位")
@Pattern(regexp = ValidationConstants.ID_CARD_PATTERN, message = "身份证号码不符合规范")
public String getCardId() {
    return cardId;
}

@NotBlank(message = "岗位编码不能为空")
@Size(min = 0, max = 64, message = "岗位编码长度不能超过64个字符")
public String getPostCode() {
    return postCode;
}

@CreditCardNumber(message = "信用卡号的格式不正确")
private String cardNumber; 

@BIC(message = "请输入有效的BIC码")  
private String bankBIC;

@Locale(message = "请输入有效的区域代码")  
private String preferredLocale; 

@Charset(charset = "UTF-8", message = "字符集编码必须为UTF-8")  
private String textContent;  

你可能感兴趣的:(SpringBoot,spring,boot,java,web安全)