Bean Validation (Jakarta Validation) — Validação de dados em Java

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

O que é Bean Validation?

Bean Validation (especificação Jakarta Bean Validation, anteriormente JSR 380) é um framework padrão para validação de dados em aplicações Java. Ele permite descrever declarativamente regras de verificação para campos, métodos e classes usando anotações. A implementação mais popular é o Hibernate Validator.

Para que serve a validação?

Em qualquer aplicação que trabalhe com entrada do usuário, é necessário verificar os dados: se a string não está vazia, se o número está dentro do intervalo, se o email é válido. A verificação manual com if-else torna o código volumoso e difícil de manter. O Bean Validation resolve esse problema, transferindo a lógica de verificação para anotações e garantindo um tratamento uniforme de erros.

Como instalar

Se você usa Maven, adicione no 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'

No Spring Boot, a validação já vem pré-instalada.

Principais funcionalidades

  • Anotações padrão: @NotNull, @Size, @Min, @Max, @Email, @Pattern, @Positive, @NotBlank e outras.
  • Grupos de validação: permitem aplicar regras diferentes dependendo do contexto (por exemplo, criação vs atualização).
  • Validadores personalizados: é possível criar sua própria anotação e escrever a lógica de verificação.
  • Validação de parâmetros de métodos: verificação de argumentos e valores de retorno.

Exemplo de código em Java

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

public class User { @NotBlank(message = "O nome não pode estar vazio") private String name;

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

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

// getters e 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());}

Quando usar

O Bean Validation é aplicado em REST APIs (Spring Boot, Jakarta EE), formulários web, objetos DTO, e também ao trabalhar com bancos de dados. Ele é indispensável se você quiser garantir a integridade dos dados no nível do código Java antes de salvá-los. É recomendado para todos os projetos que tenham entrada do usuário ou integração com sistemas externos.

Recommendations