Spring Boot 自定义参数校验

再使用过程中 spring Boot 自带的注解无法满足需求,那就需要自定义实现注解

例如:校验手机号

校验手机号是否合法,其实这个完全可以通过正则表达式来做

1.创建一个注解

@Target({FIELD, PARAMETER})
@Retention(RUNTIME)
@Constraint(validatedBy = PhoneValidator.class)
@Documented
public @interface Phone {
    String message() default "phone invalid";

    Class[] groups() default {};

    Class[] payload() default {};
}

2.实现 ConstraintValidator 接口,并重写isValid()方法

public class PhoneValidator implements ConstraintValidator {

    @Override
    public void initialize(Phone constraintAnnotation) {
    }

    @Override
    public boolean isValid(String phone, ConstraintValidatorContext context) {
        if (phone == null) return false;
        return DataConstraintsConst.phonePattern.matcher(phone).matches();
    }
}

3.使用注解

@Phone(message = "手机号格式不正确")
private String phone;

你可能感兴趣的:(Spring Boot 自定义参数校验)