본문 바로가기

Spring & Spring Boot

Dto에 Validation 적용하기

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);
    }