@Target({ ElementType.FIELD, ElementType.PARAMETER })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = MobileValidator.class)
public @interface Mobile {
String message() default "Invalid mobile number";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
public class MobileValidator implements ConstraintValidator<Mobile, String> {
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
if (value == null) {
return false;
}
}
}
public class User {
@Mobile
private String mobile;
// getter and setter methods
}
yaml
spring.mvc.throw-exception-if-no-handler-found: true
spring.mvc.static-path-pattern: /**
spring.mvc.validation.message-source: classpath:ValidationMessages
@RestController
public class UserController {
@PostMapping("/register")
public String registerUser(@Valid @RequestBody User user) {
return "User registered successfully";
}
}