Bean Validation (Jakarta Validation) — Validación de datos en Java

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es Bean Validation?

Bean Validation (especificación Jakarta Bean Validation, anteriormente JSR 380) es un framework estándar para la validación de datos en aplicaciones Java. Permite describir de forma declarativa reglas de verificación para campos, métodos y clases mediante anotaciones. La implementación más popular es Hibernate Validator.

¿Para qué sirve la validación?

En cualquier aplicación que trabaje con entrada de usuario, es necesario verificar los datos: si una cadena no está vacía, si un número está dentro de un rango, si un email es correcto. La verificación manual con if-else hace que el código sea voluminoso y difícil de mantener. Bean Validation resuelve este problema trasladando la lógica de verificación a anotaciones y proporcionando un manejo uniforme de errores.

Cómo instalar

Si usas Maven, agrega en pom.xml:

<dependency><groupId>org.hibernate.validator</groupId><artifactId>hibernate-validator</artifactId><version>8.0.1.Final</version></dependency>

Para Gradle:

implementation 'org.hibernate.validator:hibernate-validator:8.0.1.Final'

En Spring Boot la validación ya está preinstalada.

Funciones principales

  • Anotaciones estándar: @NotNull, @Size, @Min, @Max, @Email, @Pattern, @Positive, @NotBlank y otras.
  • Grupos de validación: permiten aplicar diferentes reglas según el contexto (por ejemplo, creación vs actualización).
  • Validadores personalizados: se puede crear tu propia anotación y escribir la lógica de verificación.
  • Validación de parámetros de métodos: verificación de argumentos y valores de retorno.

Ejemplo de código en Java

import jakarta.validation.constraints.*;import jakarta.validation.*;

public class User { @NotBlank(message = "El nombre no puede estar vacío") private String name;

@Email(message = "Email no válido") private String email;

@Min(18) @Max(120) private int age;

// getters y setters}

// UsoValidatorFactory factory = Validation.buildDefaultValidatorFactory();Validator validator = factory.getValidator();

User user = new User();user.setEmail("invalid");

Set<ConstraintViolation<User>> violations = validator.validate(user);for (ConstraintViolation<User> violation : violations) { System.out.println(violation.getMessage());}

Cuándo usar

Bean Validation se aplica en REST API (Spring Boot, Jakarta EE), formularios web, objetos DTO, así como al trabajar con bases de datos. Es indispensable si quieres garantizar la integridad de los datos a nivel de código Java antes de guardarlos. Se recomienda para todos los proyectos donde haya entrada de usuario o integración con sistemas externos.

Recommendations