自定义注解与validation结合使用案例

编写validation自定义注解:

@Target({ ElementType.FIELD, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Document
@Constraint(validatedBy = { Brx.BrxValidator.class }) // validatedBy 需要ConstraintValidator的实现类
public @interface Brx {
//自定义方法:
String message() default "名称不存在";
Boolean required()default false;

//validate注解通用方法:
Class<?>[]groups() default {};
Class<? extends Payload>[]payload() default {}
public static final calss BrxValidator implements
ConstraintValidator<Brx,String>{

private Boolean required = false;

public static final Pattern brx_pattern = Pattern.compile("brx");
@Override
public void initialize(Brx constraintAnnotation) {
   this.requirde=constraintAnnotation.required();

}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {  //value为比对值
  if(this.required){
    return brx_pattern.matcher(value).matches(); //定义校验规则
  }
  if(value=null||"".equals(value)){
    return true;
  }
  
    return brx_pattern.matcher(value).matches();
}
}
原文地址:https://www.cnblogs.com/brxHqs/p/9700867.html