1. 程式人生 > 程式設計 >Springboot 自定義校驗程式碼例項

Springboot 自定義校驗程式碼例項

這篇文章主要介紹了Springboot 自定義校驗程式碼例項,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

StartWithValidation.class

@Documented
@Constraint(validatedBy = StartWithValidator.class )
@Target({METHOD,FIELD})
@Retention(RUNTIME)
public @interface StartWithValidation {
  String message() default "不是正確的性別取值範圍";
  String start() default "_";
  Class<?>[] groups() default {};
  Class<? extends Payload>[] payload() default {};
  @Target({METHOD,FIELD,ANNOTATION_TYPE,CONSTRUCTOR,PARAMETER})
  @Retention(RUNTIME)
  @Documented
  @interface List {
    StartWithValidation[] value();
  }
}

StartWithValidator.class

public class StartWithValidator implements ConstraintValidator<StartWithValidation,String> {
  private String start;
  @Override
  public void initialize(StartWithValidation constraintAnnotation) {
    start = constraintAnnotation.start();
  }

  @Override
  public boolean isValid(String value,ConstraintValidatorContext context) {

    if (!StringUtils.isEmpty(value)) {
      return value.startsWith(start);
    }
    return true;
  }
}

運用

@StartWithValidation(message = "Param 'address' must be start with 'Beijing'.",start = "Beijing")
public String address;

解釋:

地址必須以Beijing開頭,否則校驗失敗

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。