JSR303
一、使用方法
1.引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
2.在需要验证的函数前加valid注解
public Result<CodeMsg> doLogin(@Valid LoginVo loginVo)
3.在需要校验类中加入需要校验的注解
public class LoginVo {
@NotNull
private String mobile;
@NotNull
@Length(min = 32)
private String password;
}
二、拓展
1.自带支持的校验方法
hibernate校验类中
2.拓展校验方法
创建一个注解
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Constraint(
validatedBy = {IsMobileValidator.class}
)//添加校验器
public @interface IsMobile {
boolean required() default true;//自增
String message() default "手机号码格式错误";//出错提示信息
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
在校验器中校验,实现ConstraintValidator接口
public class IsMobileValidator implements ConstraintValidator<IsMobile,String> {
boolean required;
@Override
public void initialize(IsMobile isMobile) {
required=isMobile.required();
}
@Override
public boolean isValid(String s, ConstraintValidatorContext constraintValidatorContext) {
if(required){
return ValidateUtil.isMobile(s);
}else{
if(StringUtils.isEmpty(s)){
return true;
}else{
return ValidateUtil.isMobile(s);
}
}
}
}
将IsMobile注解放到需要校验的属性上
@NotNull
@IsMobile
private String mobile;