Spring Boot의 DTO(데이터 전송 객체)나 엔티티 클래스에서 입력값을 검증할 때 주로 사용된다.
@RestController
@RequestMapping("/users")
public class UserController {
@PostMapping("/register")
public ResponseEntity<String> registerUser(@Valid @RequestBody UserRequest request) {
return ResponseEntity.ok("회원가입 성공!");
}
}
위 예시처럼 @Vaild 애노테이션을 통해 검증한다.
그 후 엔티티나 DTO에서
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotBlank
private String name;
@Size(min = 6, max = 20)
private String password;
@Min(18)
private int age;
}
위와 같이 DB에 저장할때 유효하지 않은 값을 예외처리할 수 있다.
기본적인 애노테이션만 알아보자면,
문자열
✔️ @NotBlank → 빈 값, 공백 문자열 불가
✔️ @Size(min=, max=) → 문자열 길이 제한
숫자
✔️ @Min(value) → 최소값 지정
✔️ @Max(value) → 최대값 지정
컬렉션 & 객체
✔️ @NotEmpty → 리스트나 배열이 비어있으면 안 됨
✔️ @Valid → 내부 객체 필드까지 검증
등이있다.