spring
How to implement custom validation annotations?
- Create the Annotation:
@Target({ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) @Constraint(validatedBy = MyValidator.class) public @interface MyConstraint { String message() default "Invalid value"; Class<?>[] groups() default {}; Class<? extends Payload>[] payload() default {}; }
- Implement the Validator:
public class MyValidator implements ConstraintValidator<MyConstraint, String> { @Override public boolean isValid(String value, ConstraintValidatorContext context) { return value != null && value.startsWith("ABC"); } }
- Use it on DTO:
@MyConstraint private String code;