<!-- Hibernate Validator -->
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.2.0.Final</version>
</dependency>
<!-- Spring Validation -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
<version>2.5.4</version>
</dependency>
public class User {
private String username;
private String email;
// Getters and setters
}
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import java.util.Set;
public class Main {
public static void main(String[] args) {
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
User user = new User();
user.setUsername("");
user.setEmail("invalid_email");
Set<ConstraintViolation<User>> violations = validator.validate(user);
for (ConstraintViolation<User> violation : violations) {
System.out.println(violation.getMessage());
}
}
}
<constraint-mappings xmlns="http://xmlns.jcp.org/xml/ns/validation/mapping"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/validation/mapping validation-mapping-2.0.xsd">
<bean class="com.example.User">
<field name="username">
<constraint annotation="javax.validation.constraints.NotBlank"/>
</field>
<field name="email">
<constraint annotation="javax.validation.constraints.Email"/>
</field>
</bean>
</constraint-mappings>
ValidatorFactory factory = Validation.byDefaultProvider()
.configure()
.addMapping(new FileMappingLocator(new File("validation-mapping.xml")))
.buildValidatorFactory();