Bean Validation (Jakarta Validation) — Datenvalidierung in Java

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Was ist Bean Validation?

Bean Validation (Spezifikation Jakarta Bean Validation, früher JSR 380) ist ein standardisiertes Framework zur Datenvalidierung in Java-Anwendungen. Es ermöglicht die deklarative Beschreibung von Prüfregeln für Felder, Methoden und Klassen mithilfe von Annotationen. Die bekannteste Implementierung ist Hibernate Validator.

Wozu dient die Validierung?

In jeder Anwendung, die mit Benutzereingaben arbeitet, müssen Daten überprüft werden: ob ein String leer ist, ob eine Zahl in einem Bereich liegt, ob eine E-Mail korrekt ist. Manuelle Prüfungen mit if-else machen den Code umständlich und schwer wartbar. Bean Validation löst dieses Problem, indem es die Prüflogik in Annotationen auslagert und eine einheitliche Fehlerbehandlung gewährleistet.

Wie installiert man es

Wenn Sie Maven verwenden, fügen Sie in die pom.xml ein:

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

Für Gradle:

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

In Spring Boot ist die Validierung bereits vorinstalliert.

Hauptfunktionen

  • Standard-Annotationen: @NotNull, @Size, @Min, @Max, @Email, @Pattern, @Positive, @NotBlank und andere.
  • Validierungsgruppen: ermöglichen die Anwendung unterschiedlicher Regeln je nach Kontext (z. B. Erstellung vs. Aktualisierung).
  • Benutzerdefinierte Validatoren: Sie können Ihre eigene Annotation erstellen und die Prüflogik schreiben.
  • Validierung von Methodenparametern: Prüfung von Argumenten und Rückgabewerten.

Java-Codebeispiel

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

public class User { @NotBlank(message = "Name darf nicht leer sein") private String name;

@Email(message = "Ungültige E-Mail") private String email;

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

// Getter und Setter}

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

Wann verwendet man es

Bean Validation wird in REST APIs (Spring Boot, Jakarta EE), Webformularen, DTO-Objekten sowie bei der Arbeit mit Datenbanken eingesetzt. Es ist unverzichtbar, wenn Sie die Datenintegrität auf Java-Code-Ebene vor dem Speichern sicherstellen möchten. Es wird für alle Projekte empfohlen, bei denen es Benutzereingaben oder eine Integration mit externen Systemen gibt.

Empfehlungen