스프링에서 데이터 유효성 검사를 하는 방식에 대해 알아보자.
- 자바 표준 검증 애노테이션이다.
- 스프링 표준 검증 애노테이션인 @Validated는 외부 계층에서 검증할 때 사용하는 것이라 여기선 언급하지 않겠다.
유효성을 검증하는 기술 표준이다.
동작 원리
ArgumentResolver
가 동작하는데, 이때 @Valid
역시 ArgumentResolver
에 의해 처리된다고 한다. @Valid
어노테이션은 컨트롤러
에서만 동작하며, 다른 계층에서 파라미터를 검증하기 위해서는 앞서 언급한 @Validated
와 결합되어야 한다고 한다.dependencies {
...
implementation 'org.springframework.boot:spring-boot-starter-validation'
...
}
@PostMapping()
public FirstDTO insertUser(@RequestBody @Valid FirstDTO userDto){
firstService.insertUser(userDto);
return userDto;
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public class FirstDTO {
private Integer id;
@NotBlank
private String name;
}
@NotNull
: Null
만 허용 X@NotEmpty
: Null
, ""
허용 X@NotBlank
: Null
, ""
, " "
허용 X더 자세한 검증 애노테이션은 이곳 에서 확인할 수 있다.