私はカードの有効期限を検証し、既製の注釈を知らないで期限切れになるが、それは独自に作成するのは非常に簡単だということを意味します。
あなたの注釈を作成します。
@Target({ METHOD, FIELD, PARAMETER })
@Retention(RUNTIME)
@Constraint(validatedBy = CardExpirationValidator.class)
public static @interface CardExpiration {
String message() default "Expiration invalid";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
注javax.validation.Constraint
注釈を - CardExpirationValidator.class
- それはCardExpiration注釈が別のクラスによって検証制約であると述べています。では、検証ロジックを使ってそのクラスを作成しましょう。
public class CreditCardData {
@NotNull
private Long cardNo;
@NotNull
@CardExpiration
private String expiryDate;
}
話題で見るJerseyさん/ JBossのマニュアル:
public static class CardExpirationValidator implements ConstraintValidator<CardExpiration, String> {
@Override
public void initialize(CardExpiration annotation) {
//Not much to do - this is invoked before "isValid", and can be used to pass annotation parameters
}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
//Insert validation logic for "value" here. Return true/false
}
}
今、あなたは、このようなパラメータとフィールドに注釈を付けることができます:このようなものになるだろう。