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());
}
}
Întrebări & Exemple de Cod:
@Valid și @Validated în Spring BootAi o nelămurire despre utilizarea comenzii
@Valid și @Validated în Spring Bootsau 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.