build.gradle에 다음을 추가한다.
implementation 'org.springframework.boot:spring-boot-starter-validation'
validation 어노테이션 목록은 다음과 같다.
@Null - // null만 혀용합니다.
@NotNull - // null을 허용하지 않습니다. "", " "는 허용합니다.
@NotEmpty - // null, ""을 허용하지 않습니다. " "는 허용합니다.
@NotBlank - // null, "", " " 모두 허용하지 않습니다.
@Email - // 이메일 형식을 검사합니다. 다만 ""의 경우를 통과 시킵니다. @Email 보다 아래 나올 @Patten을 통한 정규식 검사를 더 많이 사용합니다.
@Pattern(regexp = ) - // 정규식을 검사할 때 사용됩니다.
@Size(min=, max=) - // 길이를 제한할 때 사용됩니다.
@Max(value = ) - // value 이하의 값을 받을 때 사용됩니다.
@Min(value = ) - // value 이상의 값을 받을 때 사용됩니다.
@Positive - // 값을 양수로 제한합니다.
@PositiveOrZero - // 값을 양수와 0만 가능하도록 제한합니다.
@Negative - // 값을 음수로 제한합니다.
@NegativeOrZero - // 값을 음수와 0만 가능하도록 제한합니다.
@Future - // 현재보다 미래
@Past - // 현재보다 과거
@AssertFalse - // false 여부, null은 체크하지 않습니다.
@AssertTrue - // true 여부, null은 체크하지 않습니다.
이제 Dto 클래스에 적용해보자
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class AuthLoginRequestDTO {
@Email(message = "이메일 형식이 아닙니다.")
private String email;
@NotBlank
private String password;
}
Dto 클래스에 적용했으면, Controller에서 다음과 같이 @Valid 어노테이션으로 사용할 수 있다.
@PostMapping("/signup")
public void signup(@RequestBody @Valid //Valid 어노테이션을 사용해 검증
AuthSignupRequestDTO authSignupRequestDTO) {
this.authService.signup(authSignupRequestDTO);
}
'Spring & Spring Boot' 카테고리의 다른 글
Dto Validation 실패 시 예외처리 (1) | 2024.03.15 |
---|---|
Spring Boot에선 예외를 어떻게 처리할까?(전역, 커스텀 예외처리) (0) | 2024.03.15 |
Spring Boot의 ResponseEntity (1) | 2024.03.15 |
Spring Security jwt 적용, 커스터마이징 (0) | 2024.01.21 |
Spring Security 구조와 동작 원리 (2) | 2024.01.21 |