<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
public class User {
@NotNull
@Size(min = 5, max = 20)
private String username;
@NotNull
@Size(min = 8)
private String password;
}
@RestController
public class UserController {
@PostMapping("/user")
public void createUser(@Valid @RequestBody User user) {
}
}
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = PasswordValidator.class)
public @interface ValidPassword {
String message() default "Invalid password";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
public class PasswordValidator implements ConstraintValidator<ValidPassword, String> {
@Override
public boolean isValid(String password, ConstraintValidatorContext constraintValidatorContext) {
}
}
public class User {
@ValidPassword
private String password;
}