@Valid și @Validated în Spring Boot în Spring Boot

web Spring Boot 3.x / Jakarta Validation Q&A / Distribuie cod

Validarea automată a datelor de intrare în Spring Boot prin Jakarta Bean Validation: @NotNull, @Size, @Email, @Min și grupuri de validare.

Sintaxă
@Valid @RequestBody UserDto dto / @Validated

Securitatea oricărei aplicații web începe cu validarea strictă a datelor primite de la client. În Spring Boot, integrarea starter-ului spring-boot-starter-validation aduce suportul pentru specificația standard Jakarta Bean Validation.

Plasarea adnotării @Valid înaintea unui parametru @RequestBody determină Spring să verifice toate constrângerile definite pe DTO (cum ar fi @NotBlank, @Email sau @Size). Dacă validarea eșuează, se declanșează automat o excepție MethodArgumentNotValidException ce conține lista tuturor erorilor.

Exemplu: Definire DTO cu adnotări de validare și interceptare în Controller
package ro.dexblog.demo.dto;

import jakarta.validation.Valid;
import jakarta.validation.constraints.*;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

public record CreateAccountRequest(
    @NotBlank(message = "Numele este obligatoriu")
    @Size(min = 3, max = 50, message = "Numele trebuie să aibă între 3 și 50 de caractere")
    String fullName,

    @NotBlank(message = "Emailul este obligatoriu")
    @Email(message = "Adresă de email invalidă")
    String email,

    @Min(value = 18, message = "Trebuie să aveți vârsta minimă de 18 ani")
    int age
) {}

@RestController
class AccountController {
    @PostMapping("/api/accounts")
    public ResponseEntity createAccount(@Valid @RequestBody CreateAccountRequest req) {
        return ResponseEntity.ok("Cont creat cu succes pentru: " + req.email());
    }
}

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: @Valid și @Validated în Spring Boot

Ai o nelămurire despre utilizarea comenzii @Valid și @Validated în Spring Boot sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.