java / intermediate
Snippet
Custom Validation Constraint
Custom constraints allow you to extend Spring's validation capabilities by defining your own annotations. This is useful for complex business rules that aren't covered by standard JSR-303 annotations like @NotNull.
snippet.java
1
2
3
4
5
6
7
8
@Target({ElementType.FIELD})@Retention(RetentionPolicy.RUNTIME)@Constraint(validatedBy = SlugValidator.class)public @interface ValidSlug {String message() default "Invalid slug format";Class<?>[] groups() default {};Class<? extends Payload>[] payload() default {};}
spring
Breakdown
1
@Constraint(validatedBy = SlugValidator.class)
Specifies the class that contains the actual validation logic.
2
String message() default "..."
Defines the default error message if the validation fails.